From 72ba5b20f192a1e79f6b4ebf2124d110da67a374 Mon Sep 17 00:00:00 2001 From: Neeraj Singh Date: Tue, 11 May 2010 12:54:52 -0400 Subject: [PATCH] :select in AR does not work correctly with an array [#4562 state:resolved] --- .../lib/active_record/relation/query_methods.rb | 13 +++++++++++-- 1 files changed, 11 insertions(+), 2 deletions(-) diff --git a/activerecord/lib/active_record/relation/query_methods.rb b/activerecord/lib/active_record/relation/query_methods.rb index 8d8bb65..5657a71 100644 --- a/activerecord/lib/active_record/relation/query_methods.rb +++ b/activerecord/lib/active_record/relation/query_methods.rb @@ -171,10 +171,19 @@ module ActiveRecord quoted_table_name = @klass.quoted_table_name if selects.present? - selects.each do |s| + + columns = selects.inject([]) do |cols, s| @implicit_readonly = false - arel = arel.project(s) if s.present? + s.present? ? cols << s : cols end + + arel = if columns.last.is_a?(Arel::Count) || (columns.last.is_a?(String) && columns.last =~ /^COUNT/ ) + arel.project(columns.last) + else + native_columns = columns.select {|i| table[i]} + native_columns.any? ? arel.project(*native_columns) : arel.project(columns.last) + end + else arel = arel.project(quoted_table_name + '.*') end -- 1.6.5.2