0

今日からレールを使い始めて問題になりました。

Item、Requisito、Videoの3つのクラスを作成しました。最後の2つには足場アイテムがあります:references

次に、Itemクラスを他の2つのアイテムにポイントしました。

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 %>

ご覧のとおり、私はコードがどうあるべきかについてショットを与えました...そして私が予想したように、それは間違っていました。誰かがそれを作る正しい方法を指摘できますか?

4

1 に答える 1

2

ネストされたeachブロックは繰り返されitem.requisitosないようにする必要があります@items.requisitos(ビデオでも同じです)。だからこのように:

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

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

お役に立てば幸いです。

于 2012-08-30T07:22:03.557 に答える