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