Pregunta

Esto es probablemente bastante simple, pero aún no he podido entender el problema.

Tengo 3 tablas ... (mucho más que eso) pero en este escenario 3 eso importa.

Lugares Reservas y Calificaciones

Lugares has_many reservas

Cada reserva tiene una calificación (porque el usuario solo califica una vez) y pertenece_a (a) Lugar

Calificaciones belong_to (a) Reservas

Entonces, aunque las reservas solo tienen una calificación, los lugares tienen muchas calificaciones a través de las reservas, ya que los lugares también tienen muchas reservas

pero esto no parece funcionar? Todo lo demás parece.

Las reservas tienen place_id y las calificaciones tienen un booking_id, y he tenido éxito con todos los demás has_many a través de asociaciones ... ¿pero no has_one? ¿Algunas ideas? Gracias

además: si cambio Reservas a has_many: calificaciones funciona ... pero las reservas solo tendrán una calificación por reserva ... así que esto no parece algo bueno.

Invalid source reflection macro :has_one for has_many :ratings, :through => :bookings.  Use :source to specify the source reflection.
¿Fue útil?

Solución

has_many: through no funciona con las relaciones has_one en el modelo de unión; vea los siguientes boletos de Rails para más detalles:

Si es posible, la mejor solución es probablemente modificar sus relaciones para que una Reserva pertenece_a una Calificación en lugar de has_one Calificación.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top