aboutsummaryrefslogtreecommitdiffstats
path: root/activerecord/lib/active_record/relation
diff options
context:
space:
mode:
authorJosé Valim <jose.valim@plataformatec.com.br>2012-02-08 06:41:54 -0800
committerCarlos Antonio da Silva <carlosantoniodasilva@gmail.com>2012-12-03 23:17:16 -0200
commita878126028471626a9b30ebe60b7306374fb74ca (patch)
treed801fbe07b897cc8ce83a3dab8ef7b0031950c6f /activerecord/lib/active_record/relation
parent1a5caf180e22970a5ca927e9315a1af9f6bf6495 (diff)
downloadrails-a878126028471626a9b30ebe60b7306374fb74ca.tar.gz
rails-a878126028471626a9b30ebe60b7306374fb74ca.tar.bz2
rails-a878126028471626a9b30ebe60b7306374fb74ca.zip
Merge pull request #4942 from bogdan/pluck_joins
AR::Relation#pluck: improve to work with joins Conflicts: activerecord/lib/active_record/relation/calculations.rb activerecord/test/cases/calculations_test.rb
Diffstat (limited to 'activerecord/lib/active_record/relation')
-rw-r--r--activerecord/lib/active_record/relation/calculations.rb7
1 files changed, 6 insertions, 1 deletions
diff --git a/activerecord/lib/active_record/relation/calculations.rb b/activerecord/lib/active_record/relation/calculations.rb
index 45e9e64229..20c5fa03a2 100644
--- a/activerecord/lib/active_record/relation/calculations.rb
+++ b/activerecord/lib/active_record/relation/calculations.rb
@@ -177,7 +177,12 @@ module ActiveRecord
# Person.where(:confirmed => true).limit(5).pluck(:id)
#
def pluck(column_name)
- column_name = column_name.to_s
+ if column_name.is_a?(Symbol) && column_names.include?(column_name.to_s)
+ column_name = "#{table_name}.#{column_name}"
+ else
+ column_name = column_name.to_s
+ end
+
relation = clone
relation.select_values = [column_name]
klass.connection.select_all(relation.arel, nil, bind_values).map! do |attributes|