diff options
author | Daniel Guettler <daniel.guettler@gmail.com> | 2008-07-21 15:21:13 -0400 |
---|---|---|
committer | Pratik Naik <pratiknaik@gmail.com> | 2008-07-22 01:24:47 +0100 |
commit | c67713a2fe78d6f2db49b09771841f5022995703 (patch) | |
tree | 7a12fd34af595a3712889d9a2d3264c84279f692 /activerecord/test/cases | |
parent | 89ec72c2818a592323fe4ec3277638d379f1ac2a (diff) | |
download | rails-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')
-rw-r--r-- | activerecord/test/cases/associations/has_many_associations_test.rb | 18 |
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 |