我有以下一段代码被破坏了:
//user_posts_id is an array of integer values
@comment_notifications = Comment.where(["author_id != ? and post_id in ?", current_user.id, user_posts_id])
这是错误的一部分:
PG :: SyntaxError:ERROR:语法错误在“1”处或附近第1行:... “comments”WHERE(author_id!= 8和post_id in 1,4,8,9,2,... ^: SELECT“comments”。* FROM“comments”WHERE(author_id!= 8和post_id 在1,4,8,9,2,3)
由于“posts_id”和“user_posts_id”的第二个条件,它似乎不起作用。我认为,“!=”也会让事情变得复杂一些。编写此ActiveRecord查询的适当方法是什么?
感谢任何建议!感谢。
答案 0 :(得分:2)
问题是你发送没有parens的列表。
@comment_notifications = Comment.where(["author_id != ? and post_id in (?)", , current_user.id, user_posts_id])
如果您查看错误,它会告诉您问题在“1”附近,这是您列表中的第一项。
答案 1 :(得分:2)
你也可以用其他方式在Rails中完成:
@comment_notifications = Comment.where
.not(author_id: current_user.id)
.where(post_id: user_posts_id)