Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Browse files

Nested through associations: preloads from the default scope of a thr…

…ough model should not be included in the association scope. (We're already excluding includes.) Fixes #2834.
  • Loading branch information...
commit 9bde73ff72812f6f3c59ad97be6ca6c628e109ea 1 parent b24d668
@jonleighton jonleighton authored
View
2  activerecord/lib/active_record/associations/through_association.rb
@@ -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
View
9 activerecord/test/cases/associations/nested_through_associations_test.rb
@@ -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)
Please sign in to comment.
Something went wrong with that request. Please try again.