문제

두 가지 모델이 있습니다. Show 그리고 Venue. 쇼에는 하나의 장소가 있으며 각 장소는 쇼에 속합니다. 이 조건은 두 모델 파일에 정의됩니다 has_one & belongs_to 진술이 올바르게. 그러나 나는 show.venue. S 인 다음 코드를 고려하십시오 Show 사례:

logger.info("*********************")
logger.info("#{s.inspect}")
logger.info("#{Venue.find(s.venue_id)}") # Works
logger.info("#{s.venue}") # Causes a MySQL Error
logger.info("*********************")

MySQL 오류를 일으키는 줄이 작동해야한다고 생각합니다. 이것은 오류입니다.

ActiveRecord::StatementInvalid (Mysql::Error: Unknown column 'venues.show_id' in 'where clause': SELECT * FROM `venues` WHERE (`venues`.show_id = 95)  LIMIT 1)

왜 액세스하려고하는지 모르겠어 venues.show_id. 어떤 아이디어?

도움이 되었습니까?

해결책

당신은 외국 키가 반전되어 있습니다. ActivereCord의 규칙에서 SONGS_TO의 클래스는 외국 키와 함께 데이터베이스 테이블에 매핑되어야합니다. 참조 ActiveRecord API: "소속 _to 협회는 항상 외국 키가있는 모델에 사용됩니다." has_one 및 has_many와 함께 소속 된 방식에 대해 생각한다면 (Has_many 모델에 외래 키를 넣을 수 없기 때문에) 이것은 의미가 있습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top