Как установить значение по умолчанию столбца на текущее время с ActiveRecord? - PullRequest
1 голос
/ 21 сентября 2011

Я получил в MYSQL поле с именем date_added. Я хочу, чтобы это значение Time.now.to_i имело значение по умолчанию (другими словами, время добавления записи). Я знаю, что аналогичный столбец добавляется бесплатно в ActiveRecord, но игнорируя это ... как я могу добавить это значение по умолчанию?

: по умолчанию => ???

1 Ответ

3 голосов
/ 21 сентября 2011

Вы можете использовать before_create:

class SomeModel < ActiveRecord::Base
  before_create :set_date_added

  protected

  def set_date_added
     self.date_added = Time.now.to_i
  end
end

Вызывается непосредственно перед первым сохранением объекта, именно того состояния, которое вы хотите.

В качестве альтернативы вы можете использоватьхак, чтобы переименовать активную запись по умолчанию created_at в date_added, следуя следующим ответам: Переименование столбцов созданного_обновленного_обновленного_состояния в ActiveRecord / Rails См. http://api.rubyonrails.org/classes/ActiveRecord/Callbacks.html для получения дополнительной информации о обратных вызовах.

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