У меня есть следующие модели
class Doctor < ApplicationRecord
has_many :practices
has_many :facilities, through: :practices
has_one :address, as: :addressable
...
end
class Facility < ApplicationRecord
has_many :practices
has_many :doctors, through: :practices
has_one :address, as: :addressable
end
class Practice < ApplicationRecord
belongs_to :doctor
belongs_to :facility
end
class Address < ApplicationRecord
belongs_to :addressable, polymorphic: true
belongs_to :city
belongs_to :state
belongs_to :country
end
Врач может практиковать более одного раза в клинике.Я хочу использовать объединения (если нет более эффективного способа), чтобы найти список всех врачей, практикующих в городе.Я написал вложенные объединения как
Doctor.joins(facilities: [address: :city]) # Works
. Я не могу обойти проблему написания предложения where для указания названия города.
Doctor.joins(facilities: [address: [:city]]).where({facilities: {address: {city: {name: "Sydney"}}})
Я получаю ошибкуна котором написано
Mysql2::Error: Unknown column 'address.name' in 'where clause'
Пожалуйста, помогите!