aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--activerecord/test/cases/associations/nested_has_many_through_associations_test.rb13
-rw-r--r--activerecord/test/models/categorization.rb4
2 files changed, 15 insertions, 2 deletions
diff --git a/activerecord/test/cases/associations/nested_has_many_through_associations_test.rb b/activerecord/test/cases/associations/nested_has_many_through_associations_test.rb
index 7e1fc60cb9..6212eed0eb 100644
--- a/activerecord/test/cases/associations/nested_has_many_through_associations_test.rb
+++ b/activerecord/test/cases/associations/nested_has_many_through_associations_test.rb
@@ -213,9 +213,20 @@ class NestedHasManyThroughAssociationsTest < ActiveRecord::TestCase
# assert_equal [tags(:general), tags(:general)], authors.first.tagging_tags
end
- # TODO: has_many through
+ # has_many through
# Source: has_many through
# Through: belongs_to
+ def test_has_many_through_belongs_to_with_has_many_through_source_reflection
+ assert_equal [taggings(:welcome_general), taggings(:thinking_general)],
+ categorizations(:david_welcome_general).post_taggings
+
+ categorizations = Categorization.joins(:post_taggings).where('taggings.id' => taggings(:welcome_general).id)
+ assert_equal [categorizations(:david_welcome_general)], categorizations
+
+ categorizations = Categorization.includes(:post_taggings)
+ assert_equal [taggings(:welcome_general), taggings(:thinking_general)],
+ categorizations.first.post_taggings
+ end
# has_one through
# Source: has_one through
diff --git a/activerecord/test/models/categorization.rb b/activerecord/test/models/categorization.rb
index 10594323ff..bddc1e5f0c 100644
--- a/activerecord/test/models/categorization.rb
+++ b/activerecord/test/models/categorization.rb
@@ -2,4 +2,6 @@ class Categorization < ActiveRecord::Base
belongs_to :post
belongs_to :category
belongs_to :author
-end \ No newline at end of file
+
+ has_many :post_taggings, :through => :author, :source => :taggings
+end