From e46e4915ffe153bc952b1fd5735c4b567e226ccc Mon Sep 17 00:00:00 2001
From: Jon Leighton <j@jonathanleighton.com>
Date: Thu, 22 Dec 2011 19:22:59 +0000
Subject: Make ActiveRecord::Relation#pluck work with serialized attributes

---
 activerecord/lib/active_record/relation/calculations.rb | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

(limited to 'activerecord/lib')

diff --git a/activerecord/lib/active_record/relation/calculations.rb b/activerecord/lib/active_record/relation/calculations.rb
index 0f57e9831d..0d60810cd2 100644
--- a/activerecord/lib/active_record/relation/calculations.rb
+++ b/activerecord/lib/active_record/relation/calculations.rb
@@ -168,7 +168,7 @@ module ActiveRecord
 
     # This method is designed to perform select by a single column as direct SQL query
     # Returns <tt>Array</tt> with values of the specified column name
-    # The values has same data type as column. 
+    # The values has same data type as column.
     #
     # Examples:
     #
@@ -177,9 +177,9 @@ module ActiveRecord
     #   Person.where(:confirmed => true).limit(5).pluck(:id)
     #
     def pluck(column_name)
-      scope = self.select(column_name)
-      self.connection.select_values(scope.to_sql).map! do |value|
-        type_cast_using_column(value, column_for(column_name))
+      column_name = column_name.to_s
+      klass.connection.select_all(select(column_name).arel).map! do |attributes|
+        klass.type_cast_attribute(attributes.keys.first, klass.initialize_attributes(attributes))
       end
     end
 
-- 
cgit v1.2.3