查询排除某些ID但包括所有其他ID(包括nil)

时间:2013-09-27 14:38:40

标签: ruby-on-rails activerecord rails-activerecord

我通过将每次访问保存为Impression中的记录来记录某个页面的所有展示次数。

如果访问者已登录,则

Impression会保存user_id,因此某些记录没有保存user_id。

查询日志以显示我想要排除网站管理员的访问次数。

以下是排除管理员的一种方法,但它不包含没有user_id属性的记录:

Impression.where("user_id NOT IN (?)", [1,2])

如何在Rails 3.2中执行排除具有特定(多个)属性值的记录的查询?

2 个答案:

答案 0 :(得分:2)

试试这个:

Impression.where("user_id is not null and user_id NOT IN (?)", [1,2])

答案 1 :(得分:1)

Impression.where("user_id is null OR user_id NOT IN (?)", [1,2])