我正在尝试创建一个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
为什么没有关于before_save
工作的 if 声明?我收到错误undefined method
before_save' for false:FalseClass`