У меня есть три модели - Patient
, Location
и Area
.
Каждый пациент принадлежит определенному месту, а местоположения принадлежат областям.Области имеют логическое значение, называемое inpatient
.
. Мне нужно выбрать пациентов, которые принадлежат к месту, которое, в свою очередь, принадлежит к области со стационарным значением, установленным в true.
У меня естьпробовал следующее, но ничего не работает:
@inpatient = Area.joins(:locations).joins(:patients).where(inpatient: true).count
@inpatient = Patient.joins(:location).join(:area).where(area: {inpatient: true})
@inpatient = Patient.joins(:area).where(area: {inpatient: true}).all
@inpatient = Patient.joins(:location).joins(:area).where(area: {inpatient: true}).count
Был бы признателен за помощь!Я полагаю, что это просто и что я что-то неправильно понимаю ... Я посмотрел на другие вопросы, которые похожи, но не смог перенаправить ответы во что-то, что работает.
МОДЕЛИ
class Patient < ApplicationRecord
belongs_to :location, optional: true
has_one :area, through: :location
end
-
class Location < ApplicationRecord
has_many :patients
belongs_to :area, optional: false
end
-
class Area < ApplicationRecord
has_many :locations
has_many :patients, through: :locations
end