Ruby on rails 在Rails ActiveRecord中按ID选择数千行

Ruby on rails 在Rails ActiveRecord中按ID选择数千行,ruby-on-rails,ruby,activerecord,Ruby On Rails,Ruby,Activerecord,我试图从Rails中的ID列表中选择数千行。在rails中,基本上有没有一个很好的方法来解决这个问题: 比如: big_array = [1,3,53,68,...,100003,100040] users = User.find(big_array) 我想用 然后对导入的数据执行联接。但是,如果它已经存在,我不希望重新设计它。如果ID已排序,则将其分组并分块查询(如果未排序,则对其排序): 如果ID已排序,则将其分组并分块查询(如果未排序,则对其排序): 每个_片(纯ruby)的性能可能比

我试图从Rails中的ID列表中选择数千行。在rails中,基本上有没有一个很好的方法来解决这个问题:

比如:

big_array = [1,3,53,68,...,100003,100040]
users = User.find(big_array)
我想用
然后对导入的数据执行联接。但是,如果它已经存在,我不希望重新设计它。

如果ID已排序,则将其分组并分块查询(如果未排序,则对其排序):


如果ID已排序,则将其分组并分块查询(如果未排序,则对其排序):

每个_片
(纯ruby)的性能可能比的_组中的要好(顺便说一句,rails方法在内部使用
每个_片

你从哪里得到的
big_数组
? 可能有一种更为惯用的解决方案,即每个

片(纯ruby)的性能可能会优于
组中的(顺便说一句,rails方法在内部使用
每个

你从哪里得到的
big_数组

可能有一种更为惯用的解决方案,使用

Whoops,忘记了告诉rails不要用nil填充组的false参数。Whoops,忘记了告诉rails不要用nil填充组的false参数。大数组通过RSRubybig从R出来通过RSRuby
lots_of_ids.in_groups_of( 100, false ) do |ids|
    models = MyModel.find( ids )
    models.do_whatever_you_want_with_them
end
big_array.each_slice(1000) do |ids|
  users = User.find(ids)
  ...
end