缺少FROM子句,Update_all发布,其中comment_ids

时间:2017-01-16 09:06:47

标签: sql ruby-on-rails ruby ruby-on-rails-4 psql

我想更新评论ID

的所有帖子
Post.includes(:comments).where(comments: {id: comment_ids}).update_all(status: 1)
  

错误:表格"评论"

缺少FROM子句条目

3 个答案:

答案 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