Make sure that a joins Relation can be merged with has_many :through + association proxy
Closes #11248.
This commit is contained in:
parent
c42260a325
commit
54eee8b5f2
@ -5,6 +5,7 @@
|
||||
require 'models/job'
|
||||
require 'models/reader'
|
||||
require 'models/comment'
|
||||
require 'models/rating'
|
||||
require 'models/tag'
|
||||
require 'models/tagging'
|
||||
require 'models/author'
|
||||
@ -616,6 +617,11 @@ def test_has_many_association_through_a_belongs_to_association
|
||||
assert_equal post.author.author_favorites, post.author_favorites
|
||||
end
|
||||
|
||||
def test_merge_join_association_with_has_many_through_association_proxy
|
||||
author = authors(:mary)
|
||||
assert_nothing_raised { author.comments.ratings.to_sql }
|
||||
end
|
||||
|
||||
def test_has_many_association_through_a_has_many_association_with_nonstandard_primary_keys
|
||||
assert_equal 2, owners(:blackbeard).toys.count
|
||||
end
|
||||
|
@ -13,7 +13,11 @@ class Author < ActiveRecord::Base
|
||||
has_many :posts_with_extension, :class_name => "Post"
|
||||
has_one :post_about_thinking, -> { where("posts.title like '%thinking%'") }, :class_name => 'Post'
|
||||
has_one :post_about_thinking_with_last_comment, -> { where("posts.title like '%thinking%'").includes(:last_comment) }, :class_name => 'Post'
|
||||
has_many :comments, :through => :posts
|
||||
has_many :comments, through: :posts do
|
||||
def ratings
|
||||
Rating.joins(:comment).merge(self)
|
||||
end
|
||||
end
|
||||
has_many :comments_containing_the_letter_e, :through => :posts, :source => :comments
|
||||
has_many :comments_with_order_and_conditions, -> { order('comments.body').where("comments.body like 'Thank%'") }, :through => :posts, :source => :comments
|
||||
has_many :comments_with_include, -> { includes(:post) }, :through => :posts, :source => :comments
|
||||
|
Loading…
Reference in New Issue
Block a user