0

이것은 아마도 매우 간단하지만 난 아직이 문제를 해결 내 머리를 정리 할 수 ​​없었다.레일 has_many는

나는 3 개의 테이블을 가지고 있지만 (이보다 더 좋음)이 시나리오에서는 3 가지가 중요합니다.

장소 예약 및 등급

장소 has_many 예약

각 예약 has_one 평가 (만 요금 한 번 사용하기 때문에)와 belongs_to의 (a) (a)에 예약

belong_to

평가를 놓습니다

예약은 하나의 평점만을 갖지만 장소로 예약을 통한 has_many 등급은 많은 예약을 가지고 있습니다.

하지만이 기능이 작동하지 않는 것 같습니까? 나머지는 모두 보인다.

예약에는 place_id가 있고 등급에는 booking_id가 있으며, has_one이 아닌 다른 모든 has_many와 성공적으로 연결되었습니다. 어떤 아이디어? 감사합니다

추가 : 내가 has_many : 등급으로 예약을 변경하면 작동하지만 ... 예약은 예약 당 하나의 등급만을 가질 것입니다 ... 그래서 이것은 좋은 것 같지 않습니다.

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

답변

1

has_many :through 조인 모델 has_one 관계에서 작동하지 않음 자세한 내용은 다음 레일 티켓을 참조하십시오

가능하면 최선의 해결책이 있도록 관계를 수정하는 아마 예약 belongs_to 등급보다는 has_one 평가.

+0

감사합니다. 나는 방금 2.3.2에서 2.3.4까지 선로를 부딪 혔고, 지금 협회는 일하는 것처럼 보인다. – holden