Mohit Jain Mohit Jain - 10 months ago 77
Ruby Question

What is the difference between pluck and collect in Rails?

Here are two sample codes.

First one with


Second one with

Is there any difference between them in performance or something else?


pluck is on the db level. It will only query the particular field. See this.

When you do:

You have objects with all fields loaded and you simply get the id thanks to the method based on Enumerable.


  • if you only need the id with Rails 4, use ids:

  • if you only need some fields with Rails 4, use pluck:, :name, ...)

  • if you only need one field with Rails 3, use pluck:

  • if you need all fields, use collect

  • if you need some fields with Rails 4, still use pluck

  • if you need some fields with Rails 3, use selectand collect