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
false:FalseClass` に対して before_save'エラーが発生します