如果在模型上设置属性,我可以触发回调 - 即不是零吗?

时间:2012-11-23 04:19:48

标签: ruby-on-rails ruby-on-rails-3

我想要after_save,只有self.firm不是零。

我试过了:

after_save :set_firm_size, :if => self.firm

但那引发了一个错误。

我如何让它工作?或者不是吗?

2 个答案:

答案 0 :(得分:2)

使用Proc

after_save :set_firm_size, :if => Proc.new { |a| a.firm.present? }

答案 1 :(得分:1)

你可以创建一个Proc,就像shioyama所说,或者你可以创建一个方法,然后将该方法名称作为符号发送。例如:

after_save :set_firm_size, :if => :firm_present?

def firm_present?
  self.firm.present?
end