Kaminari:删除第一页上的对象时,对象不会从第二页转移到第一页

时间:2012-05-06 19:41:03

标签: ruby-on-rails ruby-on-rails-3 pagination kaminari

我使用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页填充元素?

感谢。

1 个答案:

答案 0 :(得分:1)

由于kaminari不会在您的视图中了解您的条件,因此您应该在查询期间过滤掉过期的项目。假设您有一个布尔expired列:

@traveldeals = Traveldeal.where(:expired => false).order('created_at DESC').page(params[:page]).per(9)