2012-05-04 5 views
0

하나의 모델에서 다른 모델로 두 개의 has_many 관계를 얻으려고합니다. 구체적 나는 원한다레일은 다른 모델과 이중 관계를 가지고 있습니다

class Driver < Active:Record::Base 
    has_many :reservations 
    has_many :requested_reservations 

class Reservations < Active:Record::Base 
    belongs_to :driver 
    belongs_to :requester 

첫번째는 예약 모델 driver_id하여 정상 has_many/belongs_to 관계이다.

두 번째 경우 @driver.requested_reservations@reservation.requester으로 전화를 걸고 Reservations 클래스의 requester_id 열을 사용할 수 있기를 원합니다. 제대로 작동하려면 has_many 및 belongs_to 행 끝 부분에 무엇을 넣어야합니까?

답변

2

원하는 결과를 얻으려면 클래스와 외래 키를 설정할 수 있다고 생각합니다.

class Driver < Active:Record::Base 
    has_many :reservations 
    has_many :requested_reservations, class_name: 'Reservation', foreign_key: 'your_id' 
    ... 
end 

class Reservations < Active:Record::Base 
    belongs_to :driver 
    belongs_to :requester, class_name: 'Driver', foreign_key: 'requester_id' 
    ... 
end 
+0

이 좋은 작품, 감사합니다! Reservations 모델의 줄 끝에 foreign_key를 추가하는 것을 잊어 버렸습니다. –