Mohit Jain Mohit Jain - 2 years ago 160
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?

Answer Source

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

Recommended from our users: Dynamic Network Monitoring from WhatsUp Gold from IPSwitch. Free Download