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.
Foi útil?

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:

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.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top