我想更新评论ID
的所有帖子Post.includes(:comments).where(comments: {id: comment_ids}).update_all(status: 1)
错误:表格"评论"
缺少FROM子句条目
答案 0 :(得分:4)
使用update_all
时,应使用joins
而不是includes
加载关联。因为includes
会在另一个查询中加载相关项,因此
Post.joins(:comments).where(comments: {id: comment_ids}).update_all(status: 1)
应按预期工作
答案 1 :(得分:1)
试试这个:
posts = Post.joins(:comments).where(comments: {id: comment_ids})
posts.update_all(status: 1)
答案 2 :(得分:1)
您还可以使用内部查询来识别需要更新的帖子。
post_ids = Comment.where(id: comment_ids).select(:post_id) #creates query to select all posts ids
Post.where(id: post_ids).update_all(status: 1) #executes update query on all posts