ruby-on-railsrubyruby-on-rails-3.1rails-activerecordbefore-save

Check if a model was modified or created on before_save event


I want to check if a model is being created in the before_save callback of Rails. I also want to check if it has been modified (when updating).

Thanks


Solution

  • You can use new_record? to see if you have a brand new object and changed? to see if anything has changed:

    before_save :pancakes
    
    def pancakes
      if new_record?
        # Not in the database yet.
      elsif changed?
        # Already exists but it has unsaved changes.
      end
    end