aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorYves Senn <yves.senn@gmail.com>2013-07-15 10:21:18 -0700
committerYves Senn <yves.senn@gmail.com>2013-07-15 10:21:18 -0700
commitd7a1f98d8c237aabcd5a3f315fe00c7a43836209 (patch)
tree974f79e35beac99225114db5b881586441af0a87
parentea7620dce2127ab913dbaf7a4d369fd382623346 (diff)
parent0d4075fb47db388f1365ce4784401fa4454a2499 (diff)
downloadrails-d7a1f98d8c237aabcd5a3f315fe00c7a43836209.tar.gz
rails-d7a1f98d8c237aabcd5a3f315fe00c7a43836209.tar.bz2
rails-d7a1f98d8c237aabcd5a3f315fe00c7a43836209.zip
Merge pull request #11282 from arunagw/deprecation-removed-attribute-missing-activerecord
Remove deprecated `attribute_missing`.
-rw-r--r--activerecord/CHANGELOG.md4
-rw-r--r--activerecord/lib/active_record/attribute_methods.rb14
-rw-r--r--activerecord/test/cases/attribute_methods_test.rb15
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