首页 > 解决方案 > Ruby on rails:如何显示另一个表中的信息?

问题描述

更新时间:22/08/2019 这正在工作。感谢您的反馈和帮助!

福利列表的图像:列表显示<-- 需要参数允许福利_ids

旧版本:21/08/2019

我已经建立了多对多的关联,但无法获取数据表名称。我可以获得 ID,但它不允许我显示其他字段信息。

我查看了控制器并添加到 permit benefit_ids 但不确定是否应该向其中添加任何其他内容。

exercisetypes(Index.html.erb)
 --- Old code (21/08/2019)
<tbody>
    <% @exercisetypes.each do |exercisetype| %>
    <tr>
    <td><%= exercisetype.name %> </td>
    <td><%= exercisetype.benefits.name %> </td>
...

 ---
New code (22/08/2019)
    <tbody>
    <% @exercisetypes.each do |exercisetype| %>
      <tr>
        <td> <%= exercisetype.name %> </td>
          <td>
           <ul>
            <% exercisetype.benefits.each do |benefit| %>
            <li><%= benefit.name %></li>
           <% end %>
          </ul>
         </td>
    <% end %>
    ...


  _form.html.erb(Gem: simple form)

  <% f.association :benefits, as: :check_boxes %>

Models

exercisetype.rb
  has_many :exercisetype_benefits, dependent: :destroy
  has_many :benefits, :through => :exercisetype_benefits


benefit.rb
  has_many :exercisetype_benefits
  has_many :exercisetypes, :through => :exercisetype_benefits


exercisetype_benefit.rb
  belongs_to :exercisetype
  belongs_to :benefit

该表显示模型名称 Benefit。没有错误消息,但我不确定如何显示福利名称。

标签: htmlrubyassociations

解决方案


福利属于练习类型模型,因此您需要遍历福利才能访问属性。检查这个:

<tbody>
  <% @exercisetypes.each do |exercisetype| %>
    <tr>
      <td><%= exercisetype.name %> </td>
      <td>
        <ul>
          <% exercisetype.benefits.each do |benefit| %>
            <li><%= benefit.name %></li>
          <% end %>
        </ul>
      </td>
    </tr>
  <% end %>
</table>


推荐阅读