gpt4 book ai didi

ruby-on-rails-4 - 获取 Rails 中第一条记录的 "id"的最有效方法

转载 作者:行者123 更新时间:2023-12-04 06:58:56 24 4
gpt4 key购买 nike

我正在审查一些代码,我遇到了一条执行以下操作的行:

Person.find_by(name: "Tom").id

上面的代码获取名为“Tom”的第一个记录,然后构建一个模型,然后获取该模型的 id。由于我们只需要 id,因此不需要检索模型中的所有数据和初始化模型的过程。使用事件记录查询优化此功能的最佳方法是什么?

我想避免使用原始 sql 解决方案。到目前为止,我已经能够想出:
Person.where(name: "Tom").pluck(:id).first

这在某些情况下更快,因为 pluck不会构建实际的模型对象,也不会加载所有数据。然而, pluck将构建一个名为“Tom”的记录数组,而原始语句只返回单个对象或 nil - 因此,根据 where,这种技术可能会更糟。陈述。我想避免创建数组并避免从服务器返回很长的 id 列表。我可以添加一个 limit(1)在链条中,
Person.where(name: "Tom").limit(1).pluck(:id).first

但似乎我让这比它应该更复杂。

最佳答案

在 Rails 6 中,您可以使用新的 pick method :

Person.where(name: 'Tom').pick(:id)

关于ruby-on-rails-4 - 获取 Rails 中第一条记录的 "id"的最有效方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32925967/

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