ctilley79
ctilley79

Reputation: 2195

Rails 4 after_initialize Only on Edit method

Right now I have the following code utilizing a callback. How can I conditionally restrict this to occur on the edit form? Currently it works on the edit form, but is also messing up calculations on other portions of my application.

customer.rb

after_initialize :convert_commission_percentage   

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

Upvotes: 0

Views: 180

Answers (1)

vee
vee

Reputation: 38645

You could check for persisted?:

after_initialize :convert_commission_percentage   

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

Or as @willmanduffy recommends:

after_initialize :convert_commission_percentage, if: :persisted?   

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

Upvotes: 1

Related Questions