为啥 Rails 会在页面上显示所有信息? [复制]
Posted
技术标签:
【中文标题】为啥 Rails 会在页面上显示所有信息? [复制]【英文标题】: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.. ]
【问题讨论】:
【参考方案1】:因为这条线:
<%= topic.nodes.each do |node| %>
每个 Ruby 语句都是一个表达式。所以每个方法都会返回一些东西(即使它是 nil)。因此,如果您调用“每个”,它将在循环完成后返回数组。所以,正如你使用<%=
,它会在循环结束后写入这个数组。
你应该使用过:
<% topic.nodes.each do |node| %>
【讨论】:
谢谢,我想我应该已经明白了。以上是关于为啥 Rails 会在页面上显示所有信息? [复制]的主要内容,如果未能解决你的问题,请参考以下文章
Rails,如何在特定页面上显示 jquery-ui-datepicker 日历?
为啥只有当我覆盖它时,我的 UINavigtionController 栏才会在 iOS 7 上错误地定位? [复制]
如何在所有页面(所有组件)ReactJs 中显示类似用户名的属性? [复制]