0

がnilでafter_saveない場合にのみ、実行したい。self.firm

私はこれを試しました:

after_save :set_firm_size, :if => self.firm

しかし、それはエラーを投げました。

これを機能させるにはどうすればよいですか?またはそれはできませんか?

4

2 に答える 2

2

次を使用しProcます。

after_save :set_firm_size, :if => Proc.new { |a| a.firm.present? }
于 2012-11-23T04:25:24.570 に答える
1

塩山が言ったように Proc を作成するか、メソッドを作成してそのメソッド名をシンボルとして送信することができます。例えば:

after_save :set_firm_size, :if => :firm_present?

def firm_present?
  self.firm.present?
end
于 2012-11-23T04:34:07.087 に答える