ActiveRecord Rails:使用关系中的条件获取记录

泰迪尔特

这是一个示例:用户有很多汽车,汽车属于用户

我想提取所有汽车信息,而不是某些用户的汽车信息(这是因为我想删除我和一些同事以创建正确的统计信息)。

我尝试了这个,但是没有成功:

Car.where("car.user.name != 'john'")

任何的想法?您是否有获取有关关系中条件的记录的一般规则?

谢谢。

BroiSatse

尝试以下方法:

Car.where('user_id != ?', User.find_by_<name?>('john').id

如果您有滑轨4:

Car.where.not(user_id: User.find_by(name: 'john')).id

更新:

上面的解决方案将起作用,因为您具有可以查询的外键。更通用的解决方案是对关联表执行左连接并过滤这些结果。无论关联类型如何(包括has_many:through和has_and_belongs_to_many),以下代码都将起作用:

Car.includes(:user).where('users.name != ?', 'john')

# rails 4

Car.includes(:user).where.not(users: { name: 'john'})

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类常见问题

禁用ActiveRecord for Rails 4

来自分类常见问题

Rails 5:ActiveRecord或查询

来自分类Dev

rails 4 ActiveRecord :: StatementInvalid

来自分类Dev

ActiveRecord无法删除记录

来自分类Dev

Rails ActiveRecord类型约束

来自分类Dev

Rails 4-ActiveRecord支持使用WHERE的查询中的OR条件

来自分类Dev

订购ActiveRecord关系对象

来自分类Dev

Rails ActiveRecord where子句

来自分类Dev

ActiveRecord与范围的关系

来自分类Dev

有没有办法在单个查询中获取ActiveRecord Rails中数组条件的所有最后记录

来自分类Dev

根据条件重构Rails ActiveRecord

来自分类Dev

Rails中的ActiveRecord查询

来自分类Dev

ActiveRecord OR查询(多个条件)

来自分类Dev

在一对多Rails ActiveRecord关系中,获得父记录只有子记录的最佳实践是什么?

来自分类Dev

使用ActiveRecord

来自分类Dev

ActiveRecord关系错误

来自分类Dev

选择记录activerecord

来自分类Dev

Rails4:从模型或已链接的关系中获取ActiveRecord :: Relation

来自分类Dev

ActiveRecord与范围的关系

来自分类Dev

ActiveRecord:关系总数

来自分类Dev

Rails视图与ActiveRecord关系的问题

来自分类Dev

Rails ActiveRecord哈希条件

来自分类Dev

使用ActiveRecord匹配记录中的数组

来自分类Dev

ActiveRecord OR查询(多个条件)

来自分类Dev

使用activerecord查找与特定用户不存在多对多关系的记录(ruby-on-rails)

来自分类Dev

Rails ActiveRecord获取集合的集合

来自分类Dev

使用ActiveRecord关系号访问记录参数

来自分类Dev

ActiveRecord通过作用域从has_many和相关关系中获取记录

来自分类Dev

如何找回ActiveRecord而不是ActiveRecord关系?