From 41efd73887c00ffd228b05d9346ec47a1f3759b9 Mon Sep 17 00:00:00 2001 From: Jeremy Kemper Date: Sat, 6 Sep 2008 21:01:45 -0700 Subject: Revert "Raise UnknownAttributeError when unknown attributes are supplied via mass assignment" This reverts commit 108db00aa90fe266564483ab301cf0669cae600f. --- activerecord/lib/active_record/base.rb | 10 +--------- activerecord/test/cases/base_test.rb | 8 -------- 2 files changed, 1 insertion(+), 17 deletions(-) (limited to 'activerecord') diff --git a/activerecord/lib/active_record/base.rb b/activerecord/lib/active_record/base.rb index 907495a416..bca2db70f8 100755 --- a/activerecord/lib/active_record/base.rb +++ b/activerecord/lib/active_record/base.rb @@ -122,10 +122,6 @@ module ActiveRecord #:nodoc: class MissingAttributeError < NoMethodError end - # Raised when unknown attributes are supplied via mass assignment. - class UnknownAttributeError < NoMethodError - end - # 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 # offending attribute. @@ -2441,11 +2437,7 @@ module ActiveRecord #:nodoc: attributes = remove_attributes_protected_from_mass_assignment(attributes) if guard_protected_attributes attributes.each do |k, v| - if k.include?("(") - multi_parameter_attributes << [ k, v ] - else - respond_to?(:"#{k}=") ? send(:"#{k}=", v) : raise(UnknownAttributeError, "unknown attribute: #{k}") - end + k.include?("(") ? multi_parameter_attributes << [ k, v ] : send(k + "=", v) end assign_multiparameter_attributes(multi_parameter_attributes) diff --git a/activerecord/test/cases/base_test.rb b/activerecord/test/cases/base_test.rb index 67358fedd6..0038174ad8 100644 --- a/activerecord/test/cases/base_test.rb +++ b/activerecord/test/cases/base_test.rb @@ -904,14 +904,6 @@ class BasicsTest < ActiveRecord::TestCase assert_nil keyboard.id end - def test_mass_assigning_invalid_attribute - firm = Firm.new - - assert_raises(ActiveRecord::UnknownAttributeError) do - firm.attributes = { "id" => 5, "type" => "Client", "i_dont_even_exist" => 20 } - end - end - def test_mass_assignment_protection_on_defaults firm = Firm.new firm.attributes = { "id" => 5, "type" => "Client" } -- cgit v1.2.3