我在rails 3.2 app中有以下代码:
<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.. ]
答案 0 :(得分:7)
由于这一行:
<%= topic.nodes.each do |node| %>
每个Ruby语句都是一个表达式。所以每个方法都返回一些东西(即使它是零)。因此,如果您调用“each”,它将在循环完成后返回Array。因此,当您使用<%=
时,它将在循环结束后写入此数组。
您应该使用:
<% topic.nodes.each do |node| %>