Ruby on rails Rails未知键::条件。有效键为::start、:batch\u size

Ruby on rails Rails未知键::条件。有效键为::start、:batch\u size,ruby-on-rails,rails-migrations,Ruby On Rails,Rails Migrations,我编写了一个非常强大的迁移,它需要运行多个集合,然后通过执行find\u或_initialize\u,我在一个事务中执行此操作,运行查询需要80多秒。现在,我想通过使用查找每个来加快速度 ActiveRecord::Base.transaction do StudentApplication.find_each(:conditions => "force_review is true") do |app| .... end end 我得到以下信息: == 20160920

我编写了一个非常强大的迁移,它需要运行多个集合,然后通过执行
find\u或_initialize\u,我在一个事务中执行此操作,运行查询需要80多秒。现在,我想通过使用
查找每个
来加快速度

ActiveRecord::Base.transaction do
  StudentApplication.find_each(:conditions => "force_review is true") do |app|
    ....
  end
end
我得到以下信息:

== 20160920133013 MoveForceReviewFieldsToCcSubmission: migrating ==============
rake aborted!
StandardError: An error has occurred, this and all later migrations canceled:

Unknown key: :conditions. Valid keys are: :start, :batch_size/Users/Nexus/Work/prodigy/db/migrate/20160920133013_move_force_review_fields_to_cc_submission.rb:4:in `block in change'
/Users/Nexus/Work/prodigy/db/migrate/20160920133013_move_force_review_fields_to_cc_submission.rb:3:in `change'
/Users/Nexus/.rbenv/versions/2.3.0/bin/bundle:23:in `load'
/Users/Nexus/.rbenv/versions/2.3.0/bin/bundle:23:in `<main>'
ArgumentError: Unknown key: :conditions. Valid keys are: :start, :batch_size
==20160920133013 MoveForceReviewFieldsToCcSubmission:迁移==============
雷克流产了!
StandardError:发生错误,此迁移和所有后续迁移已取消:
未知键::条件。有效键为::start、:batch\u size/Users/Nexus/Work/prodigy/db/migrate/20160920133013\u move\u force\u review\u fields\u to\u cc\u submission.rb:4:in'block in change'
/Users/Nexus/Work/prodigy/db/migrate/20160920133013\u move\u force\u review\u fields\u to\u cc\u submission.rb:3:in'change'
/Users/Nexus/.rbenv/versions/2.3.0/bin/bundle:23:在“加载”中
/Users/Nexus/.rbenv/versions/2.3.0/bin/bundle:23:in`'
ArgumentError:未知的键::条件。有效键为::start、:batch\u size
查看使用
find_each
,我发现它需要一个散列参数,允许您为查询指定一个条件,我想利用它在运行
find_each
之前过滤结果

ActiveRecord::Base.transaction do
  StudentApplication.find_each(:conditions => "force_review is true") do |app|
    ....
  end
end

我们使用的是
rails4.1.14.2
ruby 2.3.0p0
,这个选项现在已经被弃用了吗?还是我做错了什么

您提供的链接是针对Rails的
2.3.8

您可以看到这样一条消息:此
find\u each
已弃用。
您应该使用链接。

正如您所看到的,没有条件键,这就是出现错误的原因。

您可以这样使用它

StudentApplication.where(force_review: true).find_each do |app|
  ....
end