我.pluck(:id)
经常(和map
之前)使用来获取一组记录ID。这通常是为了获取一组相关的模型记录(例如,:people has_many :scores,as :assessed)
假设我有 10,000 人,但对 People 的查询将其限制为 1,000。
people_ids = people.pluck(:id) #people a relation/scoped
scores = Score.where(:assessed_type => 'People', :assessed_id => people_ids)
Score 查询还有更多内容,但我的基本问题是使用一组 1000 个 ID 进行查询是个坏主意吗?
我应该指出,过滤后的 Score 查询将用于获取一组新的 People。这是一个关于人的过滤器。
我的测试数据库中只有几百条记录,而且效果很好——但一定有一个地方 psql 或 Rails 会爆炸。在生产中,我看不到超过 1000 个 id,因为在使用此 Score 选项之前会自动过滤 People。