我正在尝试更新属于当前用户的对象集合。
有没有办法使用update_all并检查它们是否属于当前用户?
Object.where(user_id: current_user.id, id: params[:id]).update_all(..)
或者通过首先获取对象来做到这一点
current_user.objects
然后迭代更新?
答案 0 :(得分:0)
两者都很好,但实际上,如果您按update_all
进行搜索,如id
,则可能只会产生一条记录,我不明白为什么要执行id: params[:id]
。
请注意,如果您将用户的has_many关系添加到objects
,如果用户将其删除,object.user_id
将设置为nil
。您可能希望根据这些知识决定是否需要has_many
或坚持使用您构建的查询,这非常好。