sql - 有没有办法在 Rails 中将 where 和 where.not 组合成一个条件?

标签 sql ruby-on-rails activerecord orm

我有一个 Event模型,具有 user_id在里面。我想选择这个模型的所有对象,指定 user_id但不包括具体事件。所以我可以用这样的查询来做到这一点:

Event.where(user_id: user.id).where.not(id: id)

但是我可以将这两个结合起来吗where功能合二为一?

我知道,例如,如果我需要查找具有指定 id 的事件s 和 user_id s,我可以这样做:
Event.where(user_id: user_id).where(id: id)

我可以用一个 where 压缩它调用而不是两个:
Event.where(user_id: user_id, id: id)

但是如果我使用 where,我可以做同样的事情吗?和 where.not ?

最佳答案

您可以按照以下方式编写以添加 where 和 where.not :

Event.where(
  "user_id = ? AND id != ?",
  user.id,
  id
)

所以如果 user_id = 1 和 id = 2
这将返回带有 user_id 1 而没有 id 2 的记录:)

关于sql - 有没有办法在 Rails 中将 where 和 where.not 组合成一个条件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38894071/

相关文章:

ruby-on-rails - ActiveRecord 和 Postgresql 的枚举类型

ruby-on-rails - Rails View slim 语法中的 Br 标签

ruby-on-rails - 显示时从表中删除记录

c# - .NET:在数据库字段中允许 NULLS?

MySQL在检查另一个表中是否不存在后插入

ruby-on-rails - 如何在 ruby​​ on rails 中创建用户定义的重定向?

nhibernate - NHibernate session 究竟是什么?

mysql - 在rails中编写activerecord查询

sql - 在 Linq 查询中将 join 与 String.Contains 结合使用

MYSQL 如果用户喜欢某个状态,则将其包含在查询结果中