2012-07-20 124 views
2

我有下面的代碼在我的Rails應用程序3.2:爲什麼Rails顯示頁面上的所有信息?

<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.. ] 

回答

7

因爲該行的:

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

每個Ruby語句是一個表達式。所以每個方法都會返回一些東西(即使它是零)。所以如果你調用「each」,它會在循環完成後返回數組。所以,當你使用<%=時,它會在循環結束後寫入這個數組。

你應該使用:

<% topic.nodes.each do |node| %> 
+0

謝謝,我想我應該抓住這一點。 – 2012-07-20 14:46:10

相關問題