0

我将 Kaminari 用于我的 Rails 3.2.0 站点分页。我通过过滤它来隐藏我的交易对象,使其不显示在视图中,<% if !traveldeal.expired? %>其中 expired 是一个布尔值。

我每页显示 9 个 traveldeals,如我的控制器中所示的 index 操作:

def index
  @traveldeals = Traveldeal.order('created_at DESC').page(params[:page]).per(9)
end

最初,分页效果很好,每页显示 9 个旅游交易。但是,当我手动将第一页的 traveldeals 设置为 expired 时,设置为 expired 的 traveldeals 不再显示在第一页上,但有空白,第二页的元素不会向上移动。

唯一的其他相关信息是我有以下代码片段来显示分页:

<%= paginate @traveldeals %>

我的问题:

如何使第二页中的元素向上移动以填充第一页中的元素,因为它们被设置为过期?

谢谢。

4

1 回答 1

1

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

@traveldeals = Traveldeal.where(:expired => false).order('created_at DESC').page(params[:page]).per(9)
于 2012-05-06T19:43:45.613 回答