【发布时间】:2020-01-13 10:44:07
【问题描述】:
我需要从一组 Id 中检索记录,例如:
User.where(id: [1,1,2])
但问题是我只从这个请求中得到了两条记录,我想让 [#User id:1] 翻倍,因为数字 1 在数组中出现了两次。
我可以做一个 n+1 请求,但这不是很乐观...
【问题讨论】:
-
所以这个查询的编写方式,你只会得到每个唯一用户一次。但是,一旦执行此查询,rails 会缓存此结果,并且引用 id=1 的
User不会运行额外的查询(这取决于您如何编写查询以及如何使用结果,但这是可能的以及 rails 如何一般解决N+1问题)。更详细地解释为什么您需要这种方式,例如查找用户的东西...然后我们可以帮助您展示 rails 方式?
标签: ruby-on-rails postgresql activerecord