ran*_*its 0 ruby ruby-on-rails
我正在尝试使用ActiveRecord的update_all更新数据库中的记录集合.输入脚本/控制台.
MyModel.update_all("reserved = 1", :order => 'rand()', :limit => 1000)
Run Code Online (Sandbox Code Playgroud)
ActiveRecord认为订单是一个列,说它是未知的并抛出异常.根据文档,我的语法看起来很清醒.这是RoR 2.3.5.
MyModel.update_all("reserved = 1")单独做的时候,效果很好.
如果我这样做的话
MyModel.update_all("reserved = 1","reserve_type = 2",:order =>"rand()",:limit => 1000)=> 0
0行受影响.
我只是想做: UPDATE MyModel SET reserved=1, reserve_type=2 ORDER BY RAND() LIMIT 1000
由于第二个参数update_all应该是条件,你需要传递一个空的哈希,如下所示:
MyModel.update_all("reserved = 1", {}, {:order => 'rand()', :limit => 1000})
Run Code Online (Sandbox Code Playgroud)
这应该按预期工作.