提交 0d4075fb 编写于 作者: A Arun Agrawal

Remove deprecation warning from attribute_missing

for attributes that are columns.
上级 0b61cc73
* Remove deprecation warning from `attribute_missing` for attributes that are columns.
*Arun Agrawal*
* Remove extra decrement of transaction deep level.
Fixes: #4566
......
......@@ -176,20 +176,6 @@ def method_missing(method, *args, &block) # :nodoc:
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
......
......@@ -759,21 +759,6 @@ def test_instance_method_should_be_defined_on_the_base_class
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
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册