Mam definicje dwóch tabel powiązanych relacją jeden do wielu:
class ImedPatient < ActiveRecord::Base
self.table_name = “imed_patient”
self.primary_key = “code”
belongs_to :imed_operator , foreign_key: ‘r_opr_code’
end
oraz
class ImedOperator < ActiveRecord::Base
self.table_name = “imed_operator”
self.primary_key = “code”
has_one :imed_patient, foreign_key: ‘r_opr_code’
end
Próbuję napisać view wyświetlające dane z obu tabel powiązanych i napisałem controller :
class PacjenciController < ApplicationController
def index
@patients = ImedPatient.all
@operator = @patients.map(&:imed_operator)
end
def show
@patient = ImedPatient.find(params[:id])
end
end
Nie udaje mi się jednak odpowiednio odwołać do rekordów w tablicy imed_operator (np. do pola surname lub pesel). Ani przez operator, ani przez @operator mi nie działa Szczerze mówiąc chyba jakieś zaćmienie co mogę zmienić :
<h1>Pacjenci </h1>
<table>
<tr>
<th>Nazwisko</th>
<th>Imię</th>
<th>Pesel</th>
<th>Code_operator</th>
<th>Wizyty</th>
<th></th>
<th></th>
</tr>
<% @patients.each do |patient| %>
<tr>
<td><%= link_to operator.surname, controller: "pacjenci", action: "show", id: patient.r_opr_code %></td>
<td><%= operator.first_name %></td>
<td><%= operator.pesel %></td>
<td><%= patient.r_opr_code %></td>
<td><%= link_to 'Wizyty', url_for(action: 'wizytypacjenta', controller: 'wizyty', id: patient.code) %></td>
</tr>
<% end %>
</table>
<br>
<p><%= link_to 'Start', url_for(action: 'index', controller: 'pacjenci') %></p>
<p><%= link_to 'Wstecz', url_for(:back) %></p>