1

我想(大规模)更新模型。应通过将 attb 1 的 val 替换为 attr2 的 val 来更新每一行

users = User.find_all_by_project_id(params[:project_id])
users.each do |d|
  User.update_attribute attribute1 with attribute2
end

最好的方法是怎样的?感谢您的输入。

4

2 回答 2

1

这就是你应该这样做的,所以一切都发生在 sql 端。

User.update_all("attribute1 = attribute2", { project_id: params[:project_id] })
于 2013-02-22T08:08:47.353 回答
1

应该这样做:

User.where(:project_id => params[:project_id]).update_all('col1 = col2')

或者

User.update_all('col1 = col2', {:project_id => params['project_id'] })
于 2013-02-22T08:07:01.090 回答