From 1b88b9e3188fa8f695c1b4cd29fae8a3a3cd174c Mon Sep 17 00:00:00 2001 From: Max Lapshin Date: Mon, 23 Mar 2009 17:03:31 +0300 Subject: [PATCH] failing test for broken count with select in named_scope --- activerecord/test/cases/base_test.rb | 4 ++++ activerecord/test/models/post.rb | 8 ++++++++ 2 files changed, 12 insertions(+), 0 deletions(-) diff --git a/activerecord/test/cases/base_test.rb b/activerecord/test/cases/base_test.rb index 99d7796..2985571 100755 --- a/activerecord/test/cases/base_test.rb +++ b/activerecord/test/cases/base_test.rb @@ -1664,6 +1664,10 @@ class BasicsTest < ActiveRecord::TestCase assert_equal res6, res7 end end + + def test_count_with_select_in_scope_options_and_join + assert_equal true, Post.for_category_type('Category').any?, "When scope include ':select' options, count should not use these select" + end def test_clear_association_cache_stored firm = Firm.find(1) diff --git a/activerecord/test/models/post.rb b/activerecord/test/models/post.rb index 374e536..d774a0f 100644 --- a/activerecord/test/models/post.rb +++ b/activerecord/test/models/post.rb @@ -7,6 +7,14 @@ class Post < ActiveRecord::Base :joins => 'JOIN authors ON authors.id = posts.author_id' } } + + named_scope :for_category_type, lambda { |category_type| + {:joins => 'INNER JOIN categories_posts ON posts.id = categories_posts.post_id INNER JOIN categories ON categories.id = categories_posts.category_id', :conditions => ["categories.type=?", category_type], :select => "posts.id, posts.title, posts.author_id"} + } + + named_scope :commenters_on_author, lambda {|author_id| + {:joins => 'LEFT OUTER JOIN comments on profiles.user_id = flows_users.user_id', :conditions => ["posts.author_id=?", author_id]} + } belongs_to :author do def greeting -- 1.5.4.3