aboutsummaryrefslogtreecommitdiffstats
path: root/activerecord/test/cases/associations/has_many_associations_test.rb
diff options
context:
space:
mode:
authorDaniel Guettler <daniel.guettler@gmail.com>2008-07-21 15:21:13 -0400
committerPratik Naik <pratiknaik@gmail.com>2008-07-22 01:24:47 +0100
commitc67713a2fe78d6f2db49b09771841f5022995703 (patch)
tree7a12fd34af595a3712889d9a2d3264c84279f692 /activerecord/test/cases/associations/has_many_associations_test.rb
parent89ec72c2818a592323fe4ec3277638d379f1ac2a (diff)
downloadrails-c67713a2fe78d6f2db49b09771841f5022995703.tar.gz
rails-c67713a2fe78d6f2db49b09771841f5022995703.tar.bz2
rails-c67713a2fe78d6f2db49b09771841f5022995703.zip
Use klass.sti_name to make sure associations take store_full_sti_class into account. [#671 state:resolved]
Signed-off-by: Pratik Naik <pratiknaik@gmail.com>
Diffstat (limited to 'activerecord/test/cases/associations/has_many_associations_test.rb')
-rw-r--r--activerecord/test/cases/associations/has_many_associations_test.rb18
1 files changed, 18 insertions, 0 deletions
diff --git a/activerecord/test/cases/associations/has_many_associations_test.rb b/activerecord/test/cases/associations/has_many_associations_test.rb
index b9c7ec6377..f8b8b1f96d 100644
--- a/activerecord/test/cases/associations/has_many_associations_test.rb
+++ b/activerecord/test/cases/associations/has_many_associations_test.rb
@@ -999,4 +999,22 @@ class HasManyAssociationsTest < ActiveRecord::TestCase
assert firm.clients.loaded?
end
+ def test_joins_with_namespaced_model_should_use_correct_type
+ old = ActiveRecord::Base.store_full_sti_class
+ ActiveRecord::Base.store_full_sti_class = true
+
+ firm = Namespaced::Firm.create({ :name => 'Some Company' })
+ firm.clients.create({ :name => 'Some Client' })
+
+ stats = Namespaced::Firm.find(firm.id, {
+ :select => "#{Namespaced::Firm.table_name}.*, COUNT(#{Namespaced::Client.table_name}.id) AS num_clients",
+ :joins => :clients,
+ :group => "#{Namespaced::Firm.table_name}.id"
+ })
+ assert_equal 1, stats.num_clients.to_i
+
+ ensure
+ ActiveRecord::Base.store_full_sti_class = old
+ end
+
end