From 5659b667291940881da2b18ba03cfd0df5f93647 Mon Sep 17 00:00:00 2001
From: Josh Susser and Avdi Grimm <avdi+josh@avdi.org>
Date: Fri, 17 May 2013 15:11:37 -0400
Subject: [PATCH] Refactor select().map() to use pluck. Remove a method already
 provided by ActiveRecord.

---
 app/models/category.rb    | 2 +-
 app/models/group.rb       | 6 +-----
 app/models/post_action.rb | 2 +-
 lib/post_destroyer.rb     | 2 +-
 4 files changed, 4 insertions(+), 8 deletions(-)

diff --git a/app/models/category.rb b/app/models/category.rb
index 6ce6d3afc..6f079e606 100644
--- a/app/models/category.rb
+++ b/app/models/category.rb
@@ -112,7 +112,7 @@ class Category < ActiveRecord::Base
   def group_names=(names)
     # this line bothers me, destroying in AR can not seem to be queued, thinking of extending it
     category_groups.destroy_all unless new_record?
-    ids = Group.where(name: names.split(",")).select(:id).map(&:id)
+    ids = Group.where(name: names.split(",")).pluck(:id)
     ids.each do |id|
       category_groups.build(group_id: id)
     end
diff --git a/app/models/group.rb b/app/models/group.rb
index e16af207b..2d6a6bf05 100644
--- a/app/models/group.rb
+++ b/app/models/group.rb
@@ -129,11 +129,7 @@ class Group < ActiveRecord::Base
   end
 
   def usernames
-    users.select("username").map(&:username).join(",")
-  end
-
-  def user_ids
-    users.select('users.id').map(&:id)
+    users.pluck(:username).join(",")
   end
 
   def add(user)
diff --git a/app/models/post_action.rb b/app/models/post_action.rb
index ac3f68779..df01b0f5b 100644
--- a/app/models/post_action.rb
+++ b/app/models/post_action.rb
@@ -26,7 +26,7 @@ class PostAction < ActiveRecord::Base
                                     .count('DISTINCT posts.id')
 
     $redis.set('posts_flagged_count', posts_flagged_count)
-    user_ids = User.staff.select(:id).map {|u| u.id}
+    user_ids = User.staff.pluck(:id)
     MessageBus.publish('/flagged_counts', { total: posts_flagged_count }, { user_ids: user_ids })
   end
 
diff --git a/lib/post_destroyer.rb b/lib/post_destroyer.rb
index 52c88ee35..4675b4879 100644
--- a/lib/post_destroyer.rb
+++ b/lib/post_destroyer.rb
@@ -43,7 +43,7 @@ class PostDestroyer
       @post.update_flagged_posts_count
 
       # Remove any reply records that point to deleted posts
-      post_ids = PostReply.select(:post_id).where(reply_id: @post.id).map(&:post_id)
+      post_ids = PostReply.where(reply_id: @post.id).pluck(:post_id)
       PostReply.delete_all reply_id: @post.id
 
       if post_ids.present?