ruby-on-rails - Active Record - 多次加入同一个表
问题描述
我有一个A
属于我的模型的User
模型。我也有一个模型B
,它属于我的B
模型和我的User
模型(这是两个不同的用户,比如医生和病人)。我想做的是这样的查询:
B.joins(:user, {a: :user}).where("patient.name = 'some condition' or doctor.name='some other condition'")
这里的重点是:如何指定我正在查询的 users.name 是与 A 或 B 模型关联的那个?任何帮助将不胜感激,谢谢!
解决方案
您可以创建名为Patient
和Doctor
继承自的新类User
,然后将用户称为患者和医生,而不是通用用户。
class Doctor < User
has_many :a
end
class Patient < User
has_many :b
end
这是单表继承: https ://api.rubyonrails.org/classes/ActiveRecord/Inheritance.html
推荐阅读
- c# - 构建动态复杂 json 的正确和最佳方法
- asp.net-mvc - 如何在 mvc 中动态处理所需的验证?
- parse-platform - 解析服务器会话令牌安全问题
- vue.js - 基于路由前缀渲染数据
- python - 何时在 Python3 中使用字符串和字节类型
- google-sheets - Google 表格 - 数据集中的平均持续时间
- java - TableCellRenderer 继续在 JTable 中绘制 || Java 摇摆
- vba - VBA如何按名称访问列表框excel-2010
- mariadb - MYSQL如何选择西里尔文的月份名称作为curdate()函数的一部分
- javascript - {} + 1 与 1 + {},有什么区别?