Trilhos has_many através da associação singular
-
22-07-2019 - |
Pergunta
Este é provavelmente muito simples, mas eu ainda não ter sido capaz de envolver minha cabeça em torno do problema.
Eu tenho 3 tabelas ... (bem mais do que isso), mas neste cenário 3 essa matéria.
Lugares reservas e Pontuações
reservas Places has_many
Cada rating has_one reserva (porque o usuário só as taxas de uma vez) e belongs_to (a) Local
Pontuações belong_to (a) Reserva
Assim, mesmo que as reservas tem apenas uma classificação, lugares has_many classificações através de reservas como lugares tem muitas reservas também
mas isso não parece trabalho? Tudo o resto parece.
As reservas tem place_id e avaliações tem um booking_id, e eu fui bem sucedido com todos os outros has_many através de associações ... apenas não o has_one? Alguma ideia? Graças
Além: Se eu mudar Reservas para has_many:. Classificações funciona ... mas as reservas só nunca vai ter uma notação para cada reserva ... por isso esta não parece ser uma coisa boa
Invalid source reflection macro :has_one for has_many :ratings, :through => :bookings. Use :source to specify the source reflection.
Solução
has_many :through
não trabalha com relações has_one
sobre o modelo de aderir; consulte os seguintes bilhetes Rails para mais detalhes:
- https://rails.lighthouseapp.com/projects/8994/tickets/1149
- https://rails.lighthouseapp.com/projects/8994/tickets/2719-has_many-through-should-work-if-the-join-model-uses-has_one-relationship
Se possível, a melhor solução é, provavelmente, para modificar suas relações de modo que uma reserva belongs_to
uma Avaliação em vez de has_one
Rating.