2013-05-11 2 views
0

이것은 멍청한 질문입니다. 액세스하려는 3 개의 관련 테이블이 있습니다.연관을 통해 has_many를 사용하는 레일

환자 모델이 있습니다

has_many :charts 
has_many :providers, :through => :charts 

공급자 모델이 있습니다

has_many :charts 
has_many :patients, :through => :charts 

및 차트 모델이 있습니다

belongs_to :patient 
belongs_to :provider 

내가 설정에 current_user.id를 당겨 잘 작동하는 @provider.

@provider = Provider.where(:user_id => current_user.id).first  

는 내가 @ provider.id도

@charts = Chart.where(:provider_id => @provider.id) 

하지만 작동 내가해야 할 차트의 해시를 생성하는 것을 사용 나는 @charts 해시에서 환자의 해시를 만들려고 할 때 그것은

@patients = Patient.where(:id => @charts.patient_id) 

0 [patient_id가 차트 테이블의 열 중 하나] 번호 '미정의'patient_id 방법을 ''라고 .... 나누기

내가 뭘 잘못 했니? 도움!

@patients = Patient.where(:id => @charts[:patient_id]) 

답변

0

이 시도 :

@patients = Patient.where(:id => @charts.map(&:patient_id)) 

@charts 수집은 자동으로의 회원의 patient_id 년대를 수집하지 않습니다

+0

감사! 그게 도움이! – user2284821

0

난 당신이 뭔가를 할 필요가 있습니다 열을 액세스 할 생각 . 다른 두 쿼리는 단일 레코드에 대해 작업하고 있기 때문에 작동합니다. 마지막 쿼리에서는 두 번째 쿼리에서 반환 된 컬렉션에 대한 작업을 수행하고 있습니다.