У меня возникли проблемы с запросами между моделями в Rails. У меня есть класс Message
, который belongs_to: booking
. Моя цель - добавить область active
в Message
, что зависит от области Booking
.Цепочные области между моделями в Rails
class Booking < ActiveRecord::Base
has_one :event
has_many :messages
def self.active
includes(:event).
where('events.endtime >= ? AND status IS NOT ?'
Time.current.beginning_of_week,
statuses['canceled'])
end
end
class Message < ActiveRecord::Base
belongs_to :booking
belongs_to :person
self.active(person_id)
where(person_id: person_id).merge(Booking.active)
end
end
Я хочу найти Message
сек, направленные на конкретную Person
где ассоциированная Booking
является active
. Поэтому я хочу использовать Booking.active
при создании Message.active
.
Message.active(1)
Вызов с выше реализацией возвращает следующее сообщение об ошибке:
Association named 'event' was not found on Message; perhaps you misspelled it?
Есть ли способ, что я могу использовать Booking.active
в реализации Message.active
и получить Message
s вернулся?