views:

204

answers:

2

I have a before_save defined as follows:

  def before_save
    self.token = generate_token
  end

I want to skip it for specific save method calls. so in my code I would like to do

@user.save

without before_save filter getting called. Can I do that?

+2  A: 

You can do:

 @user.send(:update_without_callbacks)

Or create_without_callbacks works as well. I have used both but I don't know if there is a "save_without_callbacks" Either way, use sparingly.

Mike Williamson
A: 

You could also include conditional logic in your method to handle the cases where you wouldn't want the callback to fire.

def before_save
  self.token = generate_token if token.blank?
end

Not a great example, but you get the idea.

rbxbx