Вставка значений по умолчанию в таблицы с использованием направляющих - PullRequest
0 голосов
/ 19 августа 2011

Rails автоматически вставляет значения для столбцов, таких как create_at и updated_at. Могу ли я настроить рельсы таким образом, чтобы он обновлял больше столбцов. Например, во всех моих таблицах есть столбец с именем user, содержащий значение currentuser. Могу ли я использовать rails по умолчанию для вставки пользователя для любого изменения базы данных?

Ответы [ 3 ]

2 голосов
/ 19 августа 2011

Вы можете попробовать использовать функцию before_save в вашей модели, если я не понял вопрос правильно.

before_save :defaults

def defaults
   #some stuff to set your defaults
end
1 голос
/ 19 августа 2011

Да, вы можете использовать before_filter в модели, например,

before_update :set_value

def set_value
   self.value = "hello"
end
0 голосов
/ 19 августа 2011

Вы можете использовать обратные вызовы ActiveRecord для запуска логики при изменении состояний, например, перед сохранением объекта в базе данных.Столбцы create_at и updated_at автоматически обновляются при создании объекта (before_create) или обновлении (before_save).Вы можете определить свои собственные обратные вызовы, используя методы класса, определенные в пространстве имен ActiveRecord :: Callbacks.Примером может быть

# app/models/example.rb
class Example < ActiveRecord::Base
  before_save :do_something

  def do_something
    self.value = value
  end
end

Если вы специально хотите записать пользователя, который создал, обновил или удалил запись, вы можете сохранить некоторую работу и использовать плагин Usertamps Rails для автоматической записи пользователя.Этот плагин расположен по адресу https://github.com/delynn/userstamp

# app/models/example.rb
class Example < ActiveRecord::Base
  model_stamper
end

# app/controllers/application_controller.rb
class ApplicationController < ActionController::Base
  include Userstamp
end

. Вам нужно будет добавить столбцы меток пользователей на каждую модель, для которой вы хотите записать действия пользователя.

Дополнительная информация о обратных вызовах ActiveRecordможно найти здесь: http://api.rubyonrails.org/classes/ActiveRecord/Callbacks.html

Информацию о метках времени можно найти здесь: метки времени ActiveRecord: http://api.rubyonrails.org/classes/ActiveRecord/Timestamp.html

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...