【问题标题】:How do I "print" a list inside another list?如何在另一个列表中“打印”一个列表?
【发布时间】:2012-08-24 21:06:03
【问题描述】:

我今天开始使用 Rails,遇到了一个问题。

我创建了三个类:Item、Requisito 和 Video。最后两个有一个脚手架项:references

然后我将 Item 类指向其他两个项目。

class Item < ActiveRecord::Base
  attr_accessible :materia
  has_many :requisitos
  has_many :videos
end

现在,我想打印所有内容。

项目名称

item.requisito.type

item.video.link

所以我编写了这段代码。

<h1>Listing items</h1>

<table>
  <tr>
    <th>Materia</th>
    <th>Requisitos</th>
    <th>Videos</th>
<th></th>
<th></th>
<th></th>
</tr>

<% @items.each do |item| %>
  <tr>
    <td><%= item.name %></td>
    <td>
        <% @items.requisitos.each do |requisito|%>
    <%= requisito.type %>
    <br>
    <% end %>
    </td>
<td>
    <% @items.videos.each do |video|%>
    <%= video.link %>
    <br>
    <% end %>
    </td>
   <td><%= link_to 'Show', item %></td>
   <td><%= link_to 'Edit', edit_item_path(item) %></td>
   <td><%= link_to 'Destroy', item, method: :delete, data: { confirm: 'Are you sure?' } %></td>
  </tr>
<% end %>
</table>

<br />

<%= link_to 'New Item', new_item_path %>

如您所见,我只是简要介绍了代码应该如何......正如我所料,这是错误的。有人能指出正确的制作方法吗?

【问题讨论】:

    标签: ruby-on-rails ruby macos redirect scaffold


    【解决方案1】:

    您的嵌套 each 块应该迭代 item.requisitos 而不是 @items.requisitos(对于视频也是如此)。像这样:

    <% item.requisitos.each do |requisito|%>
      <%= requisito.type %>
      <br>
    <% end %>
    

    <% item.videos.each do |video|%>
      <%= video.link %>
      <br>
    <% end %>
    

    希望对您有所帮助。

    【讨论】:

    • 有帮助吗?它在 10 秒内解决了问题 xD,非常感谢!
    猜你喜欢
    • 2022-12-31
    • 2022-11-22
    • 2014-05-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-07-07
    • 2021-12-27
    相关资源
    最近更新 更多