与Kaminari的分页

时间:2015-06-26 12:54:15

标签: ruby-on-rails

我看到的Kaminari的所有例子在控制器动作中只有1个变量。

但这是我的例子:

  def index
    @draft_item = @account.draft_item # only ever one
    @in_force_item = @account.in_force_item # only ever one
    @historical_items = @account.lo_items.historical # many of these

    respond_to do |format|
      format.html
    end
  end

这些都显示在视图的表格中,我想要分页。我是否需要在索引操作中首先将这些组合成1个数组?

我在视图上的循环是这样的:

 <% [@in_force_item, @draft_item, @historical_items].compact.flatten.each do |lo_item| %>

然后我的代码如下:

<% if lo_item == @draft_item %>

这是否可行,仍然可以调用上面的行&gt;?

感谢下面的回答,我能够这样做:

@total_items = Kaminari.paginate_array([@draft_item, @in_force_item, @historical_items].compact.flatten).page(params[:page]).per(10)

这一切都必须在一条线上才能发挥作用,不像下面的答案分为两行。

1 个答案:

答案 0 :(得分:1)

是的。 Kaminari有paginate_array

@draft_item = @account.draft_item # only ever one
@in_force_item = @account.in_force_item # only ever one
@historical_items = @account.lo_items.historical

@total_items = [@in_force_item, @draft_item, @historical_items].compact.flatten

Kaminari.paginate_array(@total_items).page(params[:page]).per(10)

然后

<% @total_items.each do |lo_item| %>
<% end %>
<%= paginate @total_items %>