Rails 4 after_initialize仅在Edit方法上

时间:2014-02-04 23:10:49

标签: ruby-on-rails ruby-on-rails-4 callback

现在我有以下代码利用回调。如何在编辑表单上有条件地限制此操作?目前它适用于编辑表单,但也搞乱了我的应用程序的其他部分的计算。

customer.rb

after_initialize :convert_commission_percentage   

def convert_commission_percentage
  self.commission_percentage= commission_percentage.to_f/100.to_f
end

1 个答案:

答案 0 :(得分:1)

您可以查看persisted?

after_initialize :convert_commission_percentage   

def convert_commission_percentage
  self.commission_percentage= commission_percentage.to_f/100.to_f if persisted?
end

或者@willmanduffy建议:

after_initialize :convert_commission_percentage, if: :persisted?   

def convert_commission_percentage
  self.commission_percentage= commission_percentage.to_f/100.to_f
end