Rails:列出用户尚未审核的项目

时间:2015-04-28 19:38:02

标签: ruby-on-rails activerecord

如何编辑下面的控制器代码以查找用户尚未查看的项目?我很容易找到如何查找用户已审阅的项目,但Rails4的where.not不适合它。

查找已审核哪些项目的代码:

@items = Item.joins(:reviews).where(:reviews => { user_id: current_user.id })

2 个答案:

答案 0 :(得分:0)

可悲的是,我认为您需要为此使用自定义SQL语句。类似下面的代码:

Item.joins(:reviews).where('NOT EXISTS(select 1 from reviews where user_id = ?)', current_user.id)

答案 1 :(得分:0)

这应返回current_user

没有任何评论的项目

Item.where("NOT EXISTS (SELECT id from reviews where reviews.user_id = current_user.id))