Rails 4为当前用户更新集合

时间:2015-07-06 22:56:47

标签: ruby-on-rails sql-update

我正在尝试更新属于当前用户的对象集合。

有没有办法使用update_all并检查它们是否属于当前用户?

Object.where(user_id: current_user.id, id: params[:id]).update_all(..)

或者通过首先获取对象来做到这一点

current_user.objects

然后迭代更新?

1 个答案:

答案 0 :(得分:0)

两者都很好,但实际上,如果您按update_all进行搜索,如id,则可能只会产生一条记录,我不明白为什么要执行id: params[:id]

请注意,如果您将用户的has_many关系添加到objects,如果用户将其删除,object.user_id将设置为nil。您可能希望根据这些知识决定是否需要has_many或坚持使用您构建的查询,这非常好。