ruby-on-rails – 在Rails中如何使用find_each方法与索引?

前端之家收集整理的这篇文章主要介绍了ruby-on-rails – 在Rails中如何使用find_each方法与索引?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我可以使用Rails find_each方法,如:
User.find_each(:batch_size => 10000) do |user|
  ------
end

用find_each方法有没有办法得到数组的索引?喜欢 :

User.find_each(:batch_size => 10000).with_index do |user,index|
  ------
end

解决方法

method definition可以看出,这是不可能的.
def find_each(options = {})
  find_in_batches(options) do |records|
    records.each { |record| yield record }
  end
end

为了完成你想要做的,你需要创建自己的修改版本的方法

class User
  def find_each(options = {})
    find_in_batches(options) do |records|
      records.each_with_index { |record| yield record,index }
    end
  end
end

User.find_each(:batch_size => 10000) do |user,index|
  ------
end

或使用实例变量.

index = 0
User.find_each(:batch_size => 10000) do |user|
  # ...
  index += 1
end

没有其他默认解决方案,如方法实现所示.

猜你在找的Ruby相关文章