【发布时间】:2015-02-08 06:39:41
【问题描述】:
我有一个巨大的表 Foo,我需要从中提取某个字段 Foo.who 中的所有值。
该数组有数百万行,但who 列中只有几千个不同的值。
如果桌子更小,我当然会使用Foo.pluck(:who)
如果我使用Foo.find_in_batches do |a_batch|,每个集合都是 Foo 记录的数组,而不是 Foo 记录的 activerecord 集合,所以我不能使用 .pluck() 和 AFAIK 提取 who 列的唯一方法是通过类似.map(&:who) 遍历数组。
有没有一种方法可以分批从 Foo 中提取 who 列,而不需要遍历每个批次的每个元素来提取 who 列?
【问题讨论】:
-
对于 rails 4+,检查 this gist 以获取
pluck_in_batches方法
标签: ruby-on-rails activerecord pluck