mirror of
https://github.com/github/rails.git
synced 2026-01-28 07:48:00 -05:00
Simplify ActiveRecord::Base#update_attribute
This commit is contained in:
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user