0

我想做一个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

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

after_save :set_firm_size, :if => :firm_present?

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