Ich habe Probleme beim Abfragen zwischen Modellen in Rails. Ich habe eine Klasse Message
, dass belongs_to: booking
. Mein Ziel ist es, einen active
Scope zu Message
hinzuzufügen, der von einem Booking
Scope abhängig ist.Verkettungsbereiche zwischen Modellen in 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
Ich mag die Message
s zu einem bestimmten Person
gerichtet finden, wo die zugehörigen Booking
active
ist. Ich möchte daher die Booking.active
beim Erstellen Message.active
verwenden.
Aufruf Message.active(1)
mit über Implementierung gibt die folgende Fehlermeldung:
Association named 'event' was not found on Message; perhaps you misspelled it?
Gibt es eine Möglichkeit, Booking.active
bei der Umsetzung von Message.active
verwenden kann und Message
s zurückgegeben werden?