编辑:
我试图从患有疾病 A 的用户那里获取所有其他疾病。
老问题(错误):
我试图让患有某些疾病的用户也患有其他疾病:
class User
has_many :treatments
end
class Disease
has_many :treatments
end
class Treatment
belongs_to :user
belongs_to :disease
end
我有一些工作代码:
获取所有患有特定疾病的用户 ID:
user_ids = Treatment.joins(:user).where(disease_id: 250).pluck(:user_id)
根据用户 id 获取所有疾病
Disease.where("id != 250").where(id: Treatment.select("DISTINCT disease_id").where(user_id: user_ids))
有没有更简单的方法?也许一个查询?