두 가지 모델이 있습니다 : Patient와 Provider가 Table Chart를 통해 조인되었습니다. 내가 차트 테이블의 다른 열 [전화 patient_mrn]has_many에서 데이터에 액세스하는 방법 : 연결을 통해?
난 할 노력하고있어 것은을 보여주는 것입니다이 필요하기 때문에 [대신 "has_and_belongs_to_many"이상] :
나는 협회 "를 통해 has_many"를 사용 주어진 환자와 그와 관련된 모든 제공자 [각자의 이름과 특정 patient_mrn].
주어진 patient_ID가 포함 된 차트를 모두 가져와이를 수행합니다. 그럼 난 쉽게
<%= chart.patient_mrn %>
를 사용하여 각 차트에서 patient_mrn을 표시 할 수 있습니다하지만 난이 공급자 모델에 차트를 통해 도달 할 때
<%= chart.provider.provider_name %>
은 내가 '정의되지 않은 방법을 얻을 사용하여 공급자 이름을 잡기 위해 `provider_name 'for nil : NilClass'오류가 발생했습니다.
내가 뭘 잘못하고 있니? 다음 코드에서 더 많은 세부 사항은 다음과 같습니다
환자 모델이 있습니다
has_many :charts
has_many :providers, :through => :charts
공급자 모델이 있습니다
has_many :charts
has_many :patients, :through => :charts
및 차트 모델이 있습니다
belongs_to :patient
belongs_to :provider
을 다음 환자 컨트롤러의 쇼 동작에는 다음이 있습니다.
@patient = Patient.find(params[:id])
@charts = Chart.where(:patient_id => @patient.id)
그리고 환자에 대한 내 공연보기 16,는 내가 가지고 : 당신이 nil
로 chart.provider
을 받고 있기 때문에
<h2>Listing Providers</h2>
<table>
<tr>
<th>Patient mrn</th>
<th>Provider</th>
</tr>
<% @charts.each do |chart| %>
<tr>
<td><%= chart.patient_mrn %></td>
<td><%= chart.provider.provider_name %></td>
</tr>
<% end %>
</table>
'chart.provider'가'nil'으로 설정 되었기 때문입니다. – shweta
미안 Shweta, 난 n00b이고 이해가 안돼. 정교하게 제발 주시겠습니까? – user2284821