我有一个名为患者和病人的模型
此模型患者代表医生办公室的病人。
我有一个填充了不同性别名称的性别模型
患者has_and_belongs_to_many:性别和性别has_and_belongs_to_many:患者。
我对种族,关注,保险有类似的实施。
在患者索引视图中,我试图向某些患者展示种族或种族,关注或担忧,保险或保险(他们可能没有,1或许多)。如何一次显示所有这些?我能够想出来的唯一方法是调用first.name,如下所示。谢谢!
<table>
<tr>
<th>Patient ID</th>
<th>Created</th>
<th>Created By</th>
<th>Staff Clinician</th>
<th>Concerns</th>
<th>Gender</th>
<th>Race</th>
<th>Insurance</th>
<th>Referral Request</th>
</tr>
<% @patients.each do |patient| %>
<tr>
<td><%= patient.id %></td>
<td><%= patient.created_at.strftime("%Y-%m-%d") %></td>
<td><%= patient.user_id %></td>
<td><%= patient.staff_clinician_id %></td>
<td><%= patient.concerns.first.name %></td>
<td><%= patient.genders.first.name %></td>
<td><%= patient.races.first.name %></td>
<td><%= patient.insurances.first.name %></td>
<td><%= link_to "Show", patient %></td>
<td><%= link_to "Edit", edit_patient_path(patient) %></td>
<td><%= link_to "Remove", patient, method: :delete, data: { confirm: "Are you sure?" } %></td>
</tr>
<% end %>
</table>
答案 0 :(得分:1)
您可以遍历每个模型实例,例如:
<% patient.concerns.each do |concern| %>
<td><%= concern.name %></td>
<% end %>
答案 1 :(得分:1)
您可以对集合使用to_sentence
。
<td><%= patient.concerns.map(&:name).to_sentence %></td>
或
<td><%= patient.concerns.map{ |concern| concern.name&.titleize }.to_sentence %></td>
&
用于安全导航,这意味着如果问题没有名称,则以下.titleize
不会爆炸。
无论如何,这种显示集合的方法在处理表时很好,因为只需要一个单元格来显示所有内容。