Question

C’est probablement assez simple, mais je n’ai pas encore réussi à comprendre le problème.

J'ai 3 tables ... (bien plus que ça) mais dans ce scénario 3, ça compte.

Lieux Réservations et Evaluations

Place des réservations has_many

Chaque réservation a une note (parce que l'utilisateur ne note qu'une seule fois) et appartient à (a) Lieu

Notes appartiennent à (a) réservation

Ainsi, même si les réservations n'ont qu'un seul classement, les lieux ont_un grand nombre d'évaluations via les réservations, car les lieux ont également beaucoup de réservations

.

mais cela ne semble pas fonctionner? Tout le reste semble l'être.

Bookings a place_id et Ratings a un booking_id, et j’ai bien réussi avec tous les autres has_many par le biais d’associations ... mais pas du has_one? Des idées? Merci

ajout: si je change les réservations en has_many: les notes ça marche ... mais les réservations n'auront jamais qu'une note par réservation ... donc cela ne semble pas être une bonne chose.

Invalid source reflection macro :has_one for has_many :ratings, :through => :bookings.  Use :source to specify the source reflection.
Était-ce utile?

La solution

has_many: through ne fonctionne pas avec les relations has_one sur le modèle de jointure; voir les tickets Rails suivants pour plus de détails:

Si possible, la meilleure solution consiste probablement à modifier vos relations de manière à ce qu'un code de réservation appartient à un classement plutôt qu'un code has_one .

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top