aboutsummaryrefslogtreecommitdiffstats
path: root/activerecord/test/models
diff options
context:
space:
mode:
authorRyuta Kamizono <kamipo@gmail.com>2017-04-22 09:26:18 +0900
committerRyuta Kamizono <kamipo@gmail.com>2017-04-22 11:06:19 +0900
commit22fa48f2fc1c4d71d42eaed41ea1ef9af618d585 (patch)
tree2abede43d718842768961880bc1a97dbc83f2f92 /activerecord/test/models
parent0541a0d5481043a9c78371446389794944daf3f0 (diff)
downloadrails-22fa48f2fc1c4d71d42eaed41ea1ef9af618d585.tar.gz
rails-22fa48f2fc1c4d71d42eaed41ea1ef9af618d585.tar.bz2
rails-22fa48f2fc1c4d71d42eaed41ea1ef9af618d585.zip
Mixin `CollectionProxy::DelegateExtending` after `ClassSpecificRelation`
`ClassSpecificRelation` has `method_missing` and the `method_missing` is called first. if an associated class has the missing method in a relation, never reach to the `method_missing` in the `CollectionProxy`. I extracted `DelegateExtending` and included it to the delegate class that including `ClassSpecificRelation` to fix the issue. Fixes https://github.com/rails/rails/pull/28246#issuecomment-296033784.
Diffstat (limited to 'activerecord/test/models')
-rw-r--r--activerecord/test/models/comment.rb5
1 files changed, 5 insertions, 0 deletions
diff --git a/activerecord/test/models/comment.rb b/activerecord/test/models/comment.rb
index a4b81d56e0..76b484e616 100644
--- a/activerecord/test/models/comment.rb
+++ b/activerecord/test/models/comment.rb
@@ -19,6 +19,11 @@ class Comment < ActiveRecord::Base
has_many :children, class_name: "Comment", foreign_key: :parent_id
belongs_to :parent, class_name: "Comment", counter_cache: :children_count
+ # Should not be called if extending modules that having the method exists on an association.
+ def self.greeting
+ raise
+ end
+
def self.what_are_you
"a comment..."
end