Rails:在所有ActiveRecord关系上设置属性的快捷方法

时间:2015-05-07 02:18:58

标签: ruby-on-rails

当天的愚蠢问题......

fixup = Model.where(author_id: 5)
=> #<ActiveRecord::Relation [#<Model id: 243, author_id: 5, ...>, <#Model id: 573, author_id: 5, ...>]>

fixup.each do |f|
  f.author_id = 99
  f.save
end

上述方法的单行内容是什么会改变ActiveRecord Relation中每条记录的属性?我画的是愚蠢的空白......

2 个答案:

答案 0 :(得分:2)

这应该做的工作:

Model.where(author_id: 5).update_all(author_id: 99)

请查看API Dock了解详情。

答案 1 :(得分:1)

update_all。更多信息here

fixup = Model.where(author_id: 5).update_all(author_id: 99)