【问题标题】:Why is Rails displaying all the information on the page? [duplicate]为什么 Rails 会在页面上显示所有信息? [复制]
【发布时间】:2012-07-20 14:40:53
【问题描述】:

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

【问题讨论】:

    标签: ruby-on-rails ruby-on-rails-3 views


    【解决方案1】:

    因为这条线:

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

    每个 Ruby 语句都是一个表达式。所以每个方法都会返回一些东西(即使它是 nil)。因此,如果您调用“每个”,它将在循环完成后返回数组。所以,正如你使用&lt;%=,它会在循环结束后写入这个数组。

    你应该使用过:

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

    【讨论】:

    • 谢谢,我想我应该已经明白了。
    猜你喜欢
    • 2017-06-11
    • 1970-01-01
    • 1970-01-01
    • 2020-11-13
    • 2013-01-26
    • 1970-01-01
    • 2013-07-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多