2009-09-18 5 views
0

많은 관계를 갖고 싶은 두 모델 사이의 중간 모델을 작성하려고합니다. 비정형 도서 체크 아웃 프로젝트를 만들고 두 모델을 설정합니다 도서사람입니다. 중간 모델 BookCheckOut을 설정하여 OutDate 및 ReturnDate를 추적하고 싶습니다.중간 모델이 Ruby on Rails에서 두 개의 개별 모델을 결합합니다.

Dan Singerman 질문에 대한 답변을 보려면 Ruby On Rails Relationships - One to Many을 입력하십시오. 모델 생성에 대한 나의 경험 부족과 스캐 폴딩에 대한 나의 의존은 아마 내 문제를 야기하고 있습니다. 모델을 생성하는 방법뿐만 아니라 모델을 생성하는 방법을 결정하려고합니다.

답변

2

나는 레일 마에스트로가 아니지만, 알고있는 두 가지 방법이있다 : has_many :throughhas_and_belongs_to_many. This article에는 방법에 대한 전반적인 개요가 있습니다. 나는 당신이 has_many :through을 사용하기를 원하기 때문에 조인 테이블의 데이터에 깨끗하게 액세스 할 수 있습니다.

는 같은 것을 할 것입니다 중간 모델을 생성하려면 : 책 모델을 추가 할에서

script/generate model checkouts person_id:int, book_id:int, checked_out:date, returned:date 

을 (수행 레일이 사람을 알고있다 -> "사람"나는 네 같은데요?) :

당신의 사람이 모델에서
has_many :people, :through => :checkouts 
has_many :checkouts, :dependent => true 

당신은 추가합니다 :

has_many :books, :through => :checkouts 
has_many :checkouts, :dependent => true 

당신의 체크 아웃에서 (미안 해요, 난에서 이름을 변경하여 예) 모델을 추가하려면 다음을 추가하십시오.

belongs_to :person 
belongs_to :book 

예를 들어주의해야합니다. 메모리에서 처리하고 있습니다.

+0

위대한 기사에서는 옵션에 대해 분명히 설명합니다. 만약 모델을 선택했다면 Rich Associations * 모델 및 데이터베이스 마이그레이션을 어떻게 생성합니까? 책 및 사람 테이블의 ID가 포함 된 모델을 생성하기 만하면됩니까? belongs_to : XXXXX를 중간 모델에 추가하고 has_many : XXXXX를 다른 모델에 추가 하시겠습니까? – ahsteele

+0

답변을 업데이트했습니다. – SingleShot

+0

: depended => 기호를 추가했을 때 오류가 발생했습니다. 나는 그것을 제거하고 응용 프로그램을 작동시킬 수있었습니다. 뒤에있는 의도는 무엇입니까 : dependent =>? – ahsteele

관련 문제