Здесь:
<% @active_patients.each do |list| %>
<tr>
<td>
<%= list.patient.role.user.first_name %> <%= list.patient.role.user.last_name %>
</td>
<td>
<%= link_to patient_path(id: @patient.id), class: "btn" do %>View<% end %> . #### THIS IS THE LINE
</td>
</tr>
<% end %>
у вас есть переменная list
.Похоже, что вы получаете patient
, выполняя list.patient
, как здесь:
<%= list.patient.role.user.first_name %> <%= list.patient.role.user.last_name %>
Но затем вы пытаетесь использовать переменную с именем @patient
, здесь:
<%= link_to patient_path(id: @patient.id), class: "btn" do %>View<% end %> .
когда у вас нет переменной @patient
.Итак, вы получаете ошибку nil
.
Вместо этого, кажется, вы должны сделать:
<%= link_to patient_path(id: list.patient.id), class: "btn" do %>View<% end %> .
Или, как указывает Милгнер, вы можете просто сделать:
<%= link_to patient_path(list.patient), class: "btn" do %>View<% end %> .
Также вы можете захотетьпосмотрите на Закон Деметры , который вы нарушаете (IMO), когда вы делаете:
list.patient.role.user.first_name