gpt4 book ai didi

ruby-on-rails - Rails 中的 pluck 和 collect 有什么区别?

转载 作者:数据小太阳 更新时间:2023-10-29 06:17:38 24 4
gpt4 key购买 nike

这里有两个示例代码。

第一个 collect:

User.first.gifts.collect(&:id)

第二个 pluck:

User.first.gifts.pluck(:id)

它们在性能或其他方面有什么区别吗?

最佳答案

pluck 在数据库级别。它只会查询特定的字段。 See this .

当你这样做时:

 User.first.gifts.collect(&:id)

由于基于 Enumerable 的方法,您拥有加载了所有字段的对象,并且您只需获取 id

所以:

  • 如果在 Rails 4 中需要id,请使用ids:User.first.gifts.ids

  • 如果您需要一些 Rails 4 字段,请使用 pluck:User.first.gifts.pluck(:id, :name, ...)

  • 如果在 Rails 3 中需要一个字段,请使用 pluck:User.first.gifts.pluck(:id)

  • 如果您需要所有字段,请使用collect

  • 如果您需要使用 Rails 4 的一些字段,仍然使用 pluck

  • 如果您需要使用 Rails 3 的某些字段,请使用 selectcollect

关于ruby-on-rails - Rails 中的 pluck 和 collect 有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12176102/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com