我正在尝试使用以下布局显示模型Tribune中的最后一个实例记录:
一些随机论坛报
一些随机论坛报
最近记录的论坛报
我正在使用gem will_paginate,每页可显示10个论坛。
问题是布局可以使用,但已应用于每个页面。
每10个论坛中,有一个被标识为“最后”。显然,我只想确定一个论坛。
这是我的代码:
<div class="wrapping">
<% @tribunes.each do |tribune| %>
<div class="container">
<div class="mouse-out-container"></div>
<div class="row">
<% if tribune == @tribunes.last
%>
<h1>Last</h1>
<div class="col-xs-12 col-md-12">
<div class="card">
<div class="card-category">Popular</div>
<div class="card-description">
<h2><%= tribune.title %></h2>
<p><%= tribune.content.split[0...25].join(' ') %>...</p>
</div>
<img class="card-user" src="https://kitt.lewagon.com/placeholder/users/tgenaitay">
<%= link_to "", tribune, :class => "card-link" %>
</div>
<% else %>
<div class="col-xs-12 col-md-12">
<div class="card">
<div class="card-category">Popular</div>
<div class="card-description">
<h2><%= tribune.title %></h2>
<p><%= tribune.content.split[0...25].join(' ') %>...</p>
</div>
<img class="card-user" src="https://kitt.lewagon.com/placeholder/users/tgenaitay">
<%= link_to "", tribune, :class => "card-link" %>
</div>
</div>
<% end %>
<% end %>
</div>
<div class="center-paginate">
<%= will_paginate @tribunes, renderer: BootstrapPagination::Rails %>
</div>
</div>
</div>
答案 0 :(得分:6)
当所有Goole-fu都失败时,我们必须深入the source code。在那里,我们找到了一些有趣的方法:
# Any will_paginate-compatible collection should have these methods: # current_page, per_page, offset, total_entries, total_pages # # It can also define some of these optional methods: # out_of_bounds?, previous_page, next_page
从这些中,方法next_page
看起来很有趣,因为如果没有更多页面,它似乎会返回nil
。
现在我们可以构建循环:
<% @tribunes.each do |tribune| %>
<% if !@tribunes.next_page && tribune == @tribunes.last %>
<!-- We're on the last page and the last tribune of that page -->
Last tribune content
<% else %>
<!-- We still have tribunes to go -->
Normal tribune content
<% end %>
<% end %>