我使用Kaminari进行Rails 3.2.0网站分页。我通过使用<% if !traveldeal.expired? %>
过滤它来隐藏我的交易对象在视图上显示,其中expired是一个布尔值。
我在每个页面显示9个traveldeals,如我的控制器中显示的索引操作:
def index
@traveldeals = Traveldeal.order('created_at DESC').page(params[:page]).per(9)
end
最初,分页工作正常,每页显示9次旅行。但是,当我手动将traveldeals从第一页设置为expired时,设置为已过期的traveldeals不再显示在第一页上,但是有空的间隙,第二页的元素不会向上移动。< / p>
唯一的其他相关信息是我有以下代码片段来显示分页:
<%= paginate @traveldeals %>
我的问题:
我如何制作它,以便第2页的元素在设置为过期时从第1页填充元素?
感谢。
答案 0 :(得分:1)
由于kaminari不会在您的视图中了解您的条件,因此您应该在查询期间过滤掉过期的项目。假设您有一个布尔expired
列:
@traveldeals = Traveldeal.where(:expired => false).order('created_at DESC').page(params[:page]).per(9)