diff options
author | Arun Agrawal <arunagw@gmail.com> | 2013-07-03 23:11:54 +0200 |
---|---|---|
committer | Arun Agrawal <arunagw@gmail.com> | 2013-07-15 19:18:36 +0200 |
commit | 0d4075fb47db388f1365ce4784401fa4454a2499 (patch) | |
tree | 2a5e0f2553e1bcef0d9c01da354849e7ba8f8a7f | |
parent | 0b61cc730ee1fd2b40acac5886a62ea91c0b3d51 (diff) | |
download | rails-0d4075fb47db388f1365ce4784401fa4454a2499.tar.gz rails-0d4075fb47db388f1365ce4784401fa4454a2499.tar.bz2 rails-0d4075fb47db388f1365ce4784401fa4454a2499.zip |
Remove deprecation warning from attribute_missing
for attributes that are columns.
-rw-r--r-- | activerecord/CHANGELOG.md | 4 | ||||
-rw-r--r-- | activerecord/lib/active_record/attribute_methods.rb | 14 | ||||
-rw-r--r-- | activerecord/test/cases/attribute_methods_test.rb | 15 |
3 files changed, 4 insertions, 29 deletions
diff --git a/activerecord/CHANGELOG.md b/activerecord/CHANGELOG.md index 624c26e759..3db7dbd425 100644 --- a/activerecord/CHANGELOG.md +++ b/activerecord/CHANGELOG.md @@ -1,3 +1,7 @@ +* Remove deprecation warning from `attribute_missing` for attributes that are columns. + + *Arun Agrawal* + * Remove extra decrement of transaction deep level. Fixes: #4566 diff --git a/activerecord/lib/active_record/attribute_methods.rb b/activerecord/lib/active_record/attribute_methods.rb index 0b96f88197..208da2cb77 100644 --- a/activerecord/lib/active_record/attribute_methods.rb +++ b/activerecord/lib/active_record/attribute_methods.rb @@ -176,20 +176,6 @@ module ActiveRecord end end - def attribute_missing(match, *args, &block) # :nodoc: - if self.class.columns_hash[match.attr_name] - ActiveSupport::Deprecation.warn( - "The method `#{match.method_name}', matching the attribute `#{match.attr_name}' has " \ - "dispatched through method_missing. This shouldn't happen, because `#{match.attr_name}' " \ - "is a column of the table. If this error has happened through normal usage of Active " \ - "Record (rather than through your own code or external libraries), please report it as " \ - "a bug." - ) - end - - super - end - # A Person object with a name attribute can ask <tt>person.respond_to?(:name)</tt>, # <tt>person.respond_to?(:name=)</tt>, and <tt>person.respond_to?(:name?)</tt> # which will all return +true+. It also define the attribute methods if they have diff --git a/activerecord/test/cases/attribute_methods_test.rb b/activerecord/test/cases/attribute_methods_test.rb index 170c4cd9cd..baba55ea43 100644 --- a/activerecord/test/cases/attribute_methods_test.rb +++ b/activerecord/test/cases/attribute_methods_test.rb @@ -759,21 +759,6 @@ class AttributeMethodsTest < ActiveRecord::TestCase assert subklass.method_defined?(:id), "subklass is missing id method" end - def test_dispatching_column_attributes_through_method_missing_deprecated - Topic.define_attribute_methods - - topic = Topic.new(:id => 5) - topic.id = 5 - - topic.method(:id).owner.send(:undef_method, :id) - - assert_deprecated do - assert_equal 5, topic.id - end - ensure - Topic.undefine_attribute_methods - end - def test_read_attribute_with_nil_should_not_asplode assert_equal nil, Topic.new.read_attribute(nil) end |