【发布时间】:2018-08-12 11:47:49
【问题描述】:
我有多个要渲染的部分,我的想法是这些部分连续渲染,并且有不同的内容。所以对于这样的输出:
<div class="container">
<div class="row" data-page='1'>
<h1>Page 1 Title</h1>
</div>
<div class="row" data-page='2'>
<h1>Page 2 Title</h1>
</div>
<div class="row" data-page='3'>
<h1>Page 3 Title</h1>
</div>
</div>
我正在编写这样的代码:
<div class="container">
<% (1..3).each do |p| %>
<div class="row" data-page="<%= p %>">
<%= render "partials/o#{p}" %>
<h1><%= yield :title %></h1>
</div>
<% end %>
</div>
<!-- o1 partial -->
<% content_for :title do %>
Page 1 Title
<% end %>
<!-- o2 partial -->
<% content_for :title do %>
Page 2 Title
<% end %>
<!-- o3 partial -->
<% content_for :title do %>
Page 3 Title
<% end %>
上述代码的问题在于,在第 2 页和第 3 页上,它也有前几页的内容。像这样:
<div class="container">
<div class="row" data-page='1'>
<h1>Page 1 Title</h1>
</div>
<div class="row" data-page='2'>
<h1>Page 1 Title
Page 2 Title</h1>
</div>
<div class="row" data-page='3'>
<h1>Page 1 Title
Page 2 Title
Page 3 Title</h1>
</div>
</div>
如何避免这种情况并返回所需的输出?
【问题讨论】:
标签: ruby-on-rails view render partial-views yield