aboutsummaryrefslogtreecommitdiffstats
path: root/activerecord/lib
diff options
context:
space:
mode:
authorJon Leighton <j@jonathanleighton.com>2014-02-25 22:21:56 +0000
committerJon Leighton <j@jonathanleighton.com>2014-02-25 22:21:56 +0000
commit90ba6a762c4576c6b7c83fc8a2c8c3038aeaa274 (patch)
treeb82458f3ba4004a28f9bd34f337c094c9fa16e4b /activerecord/lib
parent6e94140300c7f8e84f2e5b8086fc9517906197e1 (diff)
parent41554319f8454f667b5e315339d3e286dbf6e1a4 (diff)
downloadrails-90ba6a762c4576c6b7c83fc8a2c8c3038aeaa274.tar.gz
rails-90ba6a762c4576c6b7c83fc8a2c8c3038aeaa274.tar.bz2
rails-90ba6a762c4576c6b7c83fc8a2c8c3038aeaa274.zip
Merge remote-tracking branch 'chancancode/fix_instance_method_already_implemented'
Conflicts: activerecord/CHANGELOG.md
Diffstat (limited to 'activerecord/lib')
-rw-r--r--activerecord/lib/active_record/attribute_methods.rb5
1 files changed, 3 insertions, 2 deletions
diff --git a/activerecord/lib/active_record/attribute_methods.rb b/activerecord/lib/active_record/attribute_methods.rb
index 9326c9c117..57ceec2fc5 100644
--- a/activerecord/lib/active_record/attribute_methods.rb
+++ b/activerecord/lib/active_record/attribute_methods.rb
@@ -105,8 +105,9 @@ module ActiveRecord
super
else
# If B < A and A defines its own attribute method, then we don't want to overwrite that.
- defined = method_defined_within?(method_name, superclass, superclass.generated_attribute_methods)
- defined && !ActiveRecord::Base.method_defined?(method_name) || super
+ defined = method_defined_within?(method_name, superclass) &&
+ superclass.instance_method(method_name).owner != superclass.generated_attribute_methods
+ defined || super
end
end