pluck
is on the db level. It will only query the particular field. See this.
When you do:
User.first.gifts.collect(&:id)
You have objects with all fields loaded and you simply get the id
thanks to the method based on Enumerable.
So:
-
if you only need the
id
with Rails 4, useids
:User.first.gifts.ids
-
if you only need some fields with Rails 4, use
pluck
:User.first.gifts.pluck(:id, :name, ...)
-
if you only need one field with Rails 3, use
pluck
:User.first.gifts.pluck(:id)
-
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
select
andcollect