저는 RoR에 매우 익숙하며, 학습시 장애물이 있습니다. 출연자 장르의 조회 테이블로 장르 테이블에 외래 키를 묶은 출연자 db 테이블에 대한 비 계를 만들었습니다.레일스가 인스턴스 변수에 값을 추가합니다.
내가 시도하려는 것은 genre 테이블에 대한 find의 현재 공연자 행에서 genre_id를 사용하여 장르 이름을 추출하는 것입니다. 내가보기에 전달할 수 있도록 @performers 인스턴스 변수에 "genre_name"=> @ genre [: genre_name]을 추가하는 방법을 알아낼 수 없다는 것을 제외하고 목록 작업에서 원하는대로 모든 작업을 수행했습니다.
내 목록에 다음 코드가 있지만 분명히 잘못하고 누군가가 나를 올바르게 조종 할 수 있다면 정말로 감사 할 것입니다.
def list
@performer_pages, @performers = paginate :performers, :per_page => 10
@performers.each do |performer|
#logger.debug(performer[:genre_id])
@genre = Genre.find(performer[:genre_id], :select => 'genre_name')
@performers[performer[:id]][:genre_name] = @genre[:genre_name]
^-- THIS IS THE LINE I AM STUCK ON
end
logger.debug(@performers.inspect)
end
감사
당신은 연결을 사용하고있을, 그들은이 매우 쉽게 만들 것입니다한다
오 ... 내가 언급 했어야했는데. 내 연예인 모델에는 has_one : 장르가 있고 내 장르 모델에는 belongs_to : performer가 있습니다. has_many로 변경해야합니까? – Skittles
Ahhh ... 그래서 나는 그것을 뒤로 얻었다. 아니요. 제 데이터베이스에는 출연자가 genre_id 필드를 가지고있는 반면 FK 제약이 있습니다. 장르는 해당 ID를 기반으로 genre_name에 대한 조회 테이블입니다. 그래서 belongs_to와 has_one을 반전시켜야합니다. 그렇습니까? – Skittles
수정하십시오. 또한 Rails는 DB 수준에서 FK 제약 조건을 제대로 수행하지 못합니다. 응용 프로그램 수준에서 언제 어디서 시행해야하는지에 대한 자체 규칙이 있기 때문입니다. 당분간 그걸 보관하십시오. 다만 알고 계십시오. – ctcherry