Domanda

Probabilmente è abbastanza semplice ma non sono ancora riuscito a risolvere il problema.

Ho 3 tabelle ... (ben più di così) ma in questo scenario 3 è importante.

Luoghi Prenotazioni e Valutazioni

Luoghi has_molte prenotazioni

Ogni prenotazione ha_una valutazione (perché l'utente valuta una sola volta) e appartiene_a (a) Luogo

Classificazioni appartengono a (a) Prenotazioni

Quindi, anche se le prenotazioni hanno una sola valutazione, i posti hanno molte valutazioni in quanto le prenotazioni hanno anche molte prenotazioni

ma questo non sembra funzionare? Tutto il resto sembra.

Le prenotazioni hanno place_id e le valutazioni hanno un booking_id, e ho avuto successo con tutti gli altri has_many attraverso le associazioni ... ma non l'ha_one? Qualche idea? Grazie

aggiunta: se cambio le prenotazioni in has_many: le valutazioni funzionano ... ma le prenotazioni avranno sempre e solo una valutazione per prenotazione ... quindi questa non sembra una buona cosa.

Invalid source reflection macro :has_one for has_many :ratings, :through => :bookings.  Use :source to specify the source reflection.
È stato utile?

Soluzione

has_many: through non funziona con le relazioni has_one sul modello di join; vedere i seguenti biglietti Rails per i dettagli:

Se possibile, la soluzione migliore è probabilmente quella di modificare le tue relazioni in modo che un di prenotazione appartenga a un rating anziché abbia_one .

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top