ruby-on-rails - ActiveRecordy has_many 通过我需要找到至少一个孩子满足条件的所有父母
问题描述
我有三个 activerecord 模型:
“A”
class User < ApplicationRecord
has_many :user_violation, class_name: "UserViolation", inverse_of: :user
has_many :violations, through: :user_violation, class_name: "Violation"
end
中间:
class UserViolation < ApplicationRecord
belongs_to :user, class_name: "User", foreign_key: :user_id
belongs_to :violation, class_name: "Violation", foreign_key: :violation_id
end
乙:
class Violation < ApplicationRecord
end
我需要找到所有至少有一个违反列的用户:fatal
设置为 true。
我有点卡在这里,这不起作用:
User.joins(:violations).where('violations.fatal = true')
解决方案
要在 ORM 中使用查询过滤条件,我认为这种语法应该是:
User.joins(:violations).where(violations: {fatal: 'true'})
推荐阅读
- android - Android - Firebase 实时数据库中的复杂查询
- r - R中的CGlur的数据树:递归循环查找所有子节点直到叶子
- python - 绘制 Scipy optimize.minimize 每次迭代的收敛结果?
- python - How to configure Ansible for Python virtual environment?
- c# - 努力理解我的导师为我编写的代码,用于 arknoid/brickbreaker 碰撞检测
- javascript - 如何根据输入的json动态加载html元素?
- javascript - writeStream 完成后如何做某事?
- executable - Perl 6 脚本编译到不同的目标
- matlab - 查找不能表示为 y=f(x) 的曲线的交点
- dart - 如何在颤动中检测选定的键盘语言?