2

Rails 3.2 アプリに次のコードがあります。

 <ul>            
          <% user_to_show.topics.each do |topic| %>
          <li> <%= link_to topic.name, topic %> 
              <ul>
                <%= topic.nodes.each do |node| %>
                  <li> <%= link_to node.title, node %> </li>
                <% end %>
              </ul>
          </li>
          <% end %>    
  </ul>

ユーザー ページに移動すると、各トピックへのリンクとそのトピック内のノードが表示されるだけだと思います。それを行いますが、最後に各ノードの実際のデータも表示します (以下を参照)。どのように来て、どうすれば修正できますか?

Sample Topic  
node1  
node2 

[#<Node id: 1, title: "node1", intro_content: "sample content", user_id: 2, date_modified: nil, created_at: "2012-07-19.." [etc..] #<Node id: 2, title: "node2", intro_content: "sample 2 content..", user_id: 2, etc.. ]
4

1 に答える 1

7

この行のため:

<%= topic.nodes.each do |node| %>

すべての Ruby ステートメントは式です。したがって、すべてのメソッドは何かを返します (たとえそれが nil であっても)。したがって、「each」を呼び出すと、ループが完了した後に配列が返されます。したがって、使用<%=したように、ループが終了した後にこの配列を書き込みます。

以下を使用する必要がありました。

<% topic.nodes.each do |node| %>
于 2012-07-20T14:43:41.533 に答える