拥有并属于许多 - 在 table 视图中显示所有记录
Has and belongs to many - display all records in table view
我有一个名为 Patient 和 table patients
的模型
这个模型 Patient 代表医生办公室里的一个病人。
我有一个填充了不同性别名称的性别模型
患者has_and_belongs_to_many:性别和性别has_and_belongs_to_many:患者。
我对种族、问题、保险有类似的实施。
在患者索引视图中,我试图显示给定患者的种族或种族、关注或关注、保险或保险(他们可能有 none、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>
您可以遍历每个模型实例,例如:
<% patient.concerns.each do |concern| %>
<td><%= concern.name %></td>
<% end %>
您可以对集合使用 to_sentence
。
<td><%= patient.concerns.map(&:name).to_sentence %></td>
或
<td><%= patient.concerns.map{ |concern| concern.name&.titleize }.to_sentence %></td>
&
是为了安全导航,这意味着如果关注点没有名称,那么下面的 .titleize
就不会爆炸。
无论如何,这种显示集合的方法在处理表格时非常有用,因为只需要一个单元格即可显示所有内容。
我有一个名为 Patient 和 table patients
的模型这个模型 Patient 代表医生办公室里的一个病人。
我有一个填充了不同性别名称的性别模型
患者has_and_belongs_to_many:性别和性别has_and_belongs_to_many:患者。
我对种族、问题、保险有类似的实施。
在患者索引视图中,我试图显示给定患者的种族或种族、关注或关注、保险或保险(他们可能有 none、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>
您可以遍历每个模型实例,例如:
<% patient.concerns.each do |concern| %>
<td><%= concern.name %></td>
<% end %>
您可以对集合使用 to_sentence
。
<td><%= patient.concerns.map(&:name).to_sentence %></td>
或
<td><%= patient.concerns.map{ |concern| concern.name&.titleize }.to_sentence %></td>
&
是为了安全导航,这意味着如果关注点没有名称,那么下面的 .titleize
就不会爆炸。
无论如何,这种显示集合的方法在处理表格时非常有用,因为只需要一个单元格即可显示所有内容。