这是两个示例代码。
第一个与collect
:
User.first.gifts.collect(&:id)
第二个与pluck
:
User.first.gifts.pluck(:id)
他们之间在性能或其他方面有什么区别吗?
pluck
是在数据库级别。它只会查询特定字段。See this http://guides.rubyonrails.org/active_record_querying.html#pluck.
当你这样做时:
User.first.gifts.collect(&:id)
您已经加载了所有字段的对象,并且您只需得到id
感谢基于Enumerable的方法。
So:
if you only需要id
对于 Rails 4,使用ids
: User.first.gifts.ids
if you onlyRails 4 需要一些字段,请使用pluck
: User.first.gifts.pluck(:id, :name, ...)
if you onlyRails 3 需要一个字段,请使用pluck
: User.first.gifts.pluck(:id)
如果你需要all字段、使用collect
如果你需要 Rails 4 的一些字段,仍然使用pluck
如果您需要 Rails 3 的某些字段,请使用select
and collect
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)