Permalink
Browse files

Simplify ActiveRecord::Base#update_attribute

  • Loading branch information...
1 parent 30e5c54 commit 814d1ceb7d31ccad0eff8f2b98fd01e9e41abed9 @lifo lifo committed Jun 7, 2008
Showing with 4 additions and 13 deletions.
  1. +4 −4 activerecord/lib/active_record/base.rb
  2. +0 −9 activerecord/lib/active_record/validations.rb
@@ -2258,12 +2258,12 @@ def becomes(klass)
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
@@ -277,7 +277,6 @@ def self.included(base) # :nodoc:
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
@@ -924,14 +923,6 @@ def save_with_validation!
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

0 comments on commit 814d1ce

Please sign in to comment.