diff options
author | Sean Griffin <sean@seantheprogrammer.com> | 2015-03-02 09:21:42 -0700 |
---|---|---|
committer | Sean Griffin <sean@seantheprogrammer.com> | 2015-03-02 09:21:42 -0700 |
commit | c0584ea0346062982cfe3c776c826ea1b026a8ac (patch) | |
tree | 16bc948bd6159fd44385127ceb5a7f11c5c074ef /activerecord/lib | |
parent | 53333935347a1f1ca6dc57d1f7ddd9663c78d037 (diff) | |
parent | 95c2fc967987e5dffa89a32c81bca736c7ba964d (diff) | |
download | rails-c0584ea0346062982cfe3c776c826ea1b026a8ac.tar.gz rails-c0584ea0346062982cfe3c776c826ea1b026a8ac.tar.bz2 rails-c0584ea0346062982cfe3c776c826ea1b026a8ac.zip |
Merge pull request #19077 from robin850/unknown-attribute-error
Move `UnknownAttributeError` to a more sane namespace
Diffstat (limited to 'activerecord/lib')
-rw-r--r-- | activerecord/lib/active_record/attribute_assignment.rb | 7 | ||||
-rw-r--r-- | activerecord/lib/active_record/errors.rb | 6 |
2 files changed, 9 insertions, 4 deletions
diff --git a/activerecord/lib/active_record/attribute_assignment.rb b/activerecord/lib/active_record/attribute_assignment.rb index 483d4200bd..cc265e2af6 100644 --- a/activerecord/lib/active_record/attribute_assignment.rb +++ b/activerecord/lib/active_record/attribute_assignment.rb @@ -29,6 +29,13 @@ module ActiveRecord assign_multiparameter_attributes(multi_parameter_attributes) unless multi_parameter_attributes.empty? end + # Re-raise with the ActiveRecord constant in case of an error + def _assign_attribute(k, v) # :nodoc: + super + rescue ActiveModel::UnknownAttributeError + raise UnknownAttributeError.new(self, k) + end + # Assign any deferred nested attributes after the base attributes have been set. def assign_nested_parameter_attributes(pairs) pairs.each { |k, v| _assign_attribute(k, v) } diff --git a/activerecord/lib/active_record/errors.rb b/activerecord/lib/active_record/errors.rb index d710d96a9a..98aee77557 100644 --- a/activerecord/lib/active_record/errors.rb +++ b/activerecord/lib/active_record/errors.rb @@ -178,10 +178,8 @@ module ActiveRecord class DangerousAttributeError < ActiveRecordError end - UnknownAttributeError = ActiveSupport::Deprecation::DeprecatedConstantProxy.new( # :nodoc: - 'ActiveRecord::UnknownAttributeError', - 'ActiveModel::AttributeAssignment::UnknownAttributeError' - ) + # Raised when unknown attributes are supplied via mass assignment. + UnknownAttributeError = ActiveModel::UnknownAttributeError # Raised when an error occurred while doing a mass assignment to an attribute through the # +attributes=+ method. The exception has an +attribute+ property that is the name of the |