Implementing destroy validate false in Rails
Not sure why Rails doesn't have a record.destroy(:validate => false) as there is this option within the save method.
Notes:
- Tested in Rails 3.2
class User < ActiveRecord::Base
# Override destroy to avoid validation callbacks
# but still run all other destroy callbacks as normal
# update_attribute, update_column, and touch do not
# run validate callbacks
def destroy
run_callbacks :destroy do
update_attribute(:deleted_at, Time.zone.now)
# You can also put 'touch(:deleted_at)'
# or 'update_column(:deleted_at, Time.zone.now)'
# but be aware that they don't effect 'record.changed?'
end
end
end
- Pushed on 04/18/2013 by Christian
