Я пытаюсь создать before_save
, чтобы установить имя записи на дату ее создания, если она была оставлена пустой. Я заставил его работать с методом, вот моя модель:
class Entry < ActiveRecord::Base
belongs_to :user
has_many :entry_ingredients
has_many :ingredients, :through => :entry_ingredients
before_save :default_name
accepts_nested_attributes_for :ingredients, :reject_if => lambda { |a| a[:name].blank? }, :allow_destroy => true
def default_name
if self.name.blank?
self.name = Time.new
else
self.name
end
end
end
Однако то, что я думаю, тот же самый код, похоже, не работает в before_save
. По сути, я пытался сделать это before_save :default_name, :if => self.name.blank?
, и тогда мой метод был бы короче:
def default_name
self.name = Time.new
end
Почему не работает оператор if на before_save
? Я получаю сообщение об ошибке undefined method
before_save для false:FalseClass`