Skip to content

Commit

Permalink
Nested through associations: preloads from the default scope of a thr…
Browse files Browse the repository at this point in the history
…ough model should not be included in the association scope. (We're already excluding includes.) Fixes #2834.
  • Loading branch information
jonleighton committed Sep 6, 2011
1 parent b24d668 commit 9bde73f
Show file tree
Hide file tree
Showing 2 changed files with 10 additions and 1 deletion.
Expand Up @@ -16,7 +16,7 @@ def target_scope
chain[1..-1].each do |reflection|
scope = scope.merge(
reflection.klass.scoped.with_default_scope.
except(:select, :create_with, :includes)
except(:select, :create_with, :includes, :preload)
)
end
scope
Expand Down
Expand Up @@ -356,6 +356,15 @@ def test_has_one_through_has_one_through_with_belongs_to_source_reflection
assert_equal categories(:general), members(:groucho).club_category
end

def test_has_one_through_has_one_through_with_belongs_to_source_reflection_with_default_scope_preload_on_the_through_model
prev_default_scope = Club.default_scopes
Club.default_scopes = [Club.preload(:category)]

assert_equal categories(:general), members(:groucho).club_category
ensure
Club.default_scopes = prev_default_scope
end

def test_has_one_through_has_one_through_with_belongs_to_source_reflection_preload
members = assert_queries(4) { Member.includes(:club_category).to_a.sort_by(&:id) }
general = categories(:general)
Expand Down

0 comments on commit 9bde73f

Please sign in to comment.