Simplify ActiveRecord::Base#update_attribute

This commit is contained in:
Pratik Naik
2008-06-07 01:25:27 +01:00
parent e79d47847a
commit 89ea7bee36
2 changed files with 4 additions and 13 deletions

View File

@@ -2252,12 +2252,12 @@ module ActiveRecord #:nodoc:
end
end
# Updates a single attribute and saves the record. This is especially useful for boolean flags on existing records.
# Note: This method is overwritten by the Validation module that'll make sure that updates made with this method
# aren't subjected to validation checks. Hence, attributes can be updated even if the full object isn't valid.
# Updates a single attribute and saves the record without going through the normal validation procedure.
# This is especially useful for boolean flags on existing records. The regular +update_attribute+ method
# in Base is replaced with this when the validations module is mixed in, which it is by default.
def update_attribute(name, value)
send(name.to_s + '=', value)
save
save(false)
end
# Updates all the attributes from the passed-in Hash and saves the record. If the object is invalid, the saving will

View File

@@ -277,7 +277,6 @@ module ActiveRecord
base.class_eval do
alias_method_chain :save, :validation
alias_method_chain :save!, :validation
alias_method_chain :update_attribute, :validation_skipping
end
base.send :include, ActiveSupport::Callbacks
@@ -914,14 +913,6 @@ module ActiveRecord
end
end
# Updates a single attribute and saves the record without going through the normal validation procedure.
# This is especially useful for boolean flags on existing records. The regular +update_attribute+ method
# in Base is replaced with this when the validations module is mixed in, which it is by default.
def update_attribute_with_validation_skipping(name, value)
send(name.to_s + '=', value)
save(false)
end
# Runs +validate+ and +validate_on_create+ or +validate_on_update+ and returns true if no errors were added otherwise false.
def valid?
errors.clear