我看到的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)
这一切都必须在一条线上才能发挥作用,不像下面的答案分为两行。
答案 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 %>