从表中获取数组中每个元素的数据

时间:2014-01-30 14:52:39

标签: ruby-on-rails ruby-on-rails-3 ruby-on-rails-4 rails-activerecord

我想为数组中的每个值获取数据库中找到的前10条记录。

使用IN运算符一次获取所有记录,更适合我,因为我可以轻松地对它们进行分组,但问题是对于数组中的每个值,我得到100条记录,而我只需要前10条记录。我怎么能得到那些?

这就是我现在使用的,但是下面的代码从表中获取100条记录,用于数组中的每个元素。

arr = [1, 2, 3]

Result.where('date(created_at) = ? AND word_id IN (?)', Date.today - 1.day, arr)

o = _ 
o.group(:value).count

谢谢

1 个答案:

答案 0 :(得分:0)

正在寻找类似的东西

arr = [1, 2, 3]

result = arr.collect { |i| result << Result.where('date(created_at) = ? AND word_id IN (?)', Date.today - 1.day, i).order(:id).limit(10) }.flatten

result = arr.map { |i| result << Result.where('date(created_at) = ? AND word_id IN (?)', Date.today - 1.day, i).order(:id).limit(10) }.flatten

计算

result.count