Rails 3,简单数组的Kaminari分页

38

为了对一个普通的数组进行分页,我得到了以下解决方案:

@arr_name = Kaminari.paginate_array(@arr_name).page(params[:page]).per(PER_PAGE_RECORDS)

PER_PAGE_RECORDS 是一个变量,其值根据需要进行分页。

有更好的想法吗?

此外,为了使用分页的Ajax调用,可以使用以下方法:

在你的视图中,给你的div标签一个id

div id="paginate"

并在其中添加以下内容

<%= paginate @arr_name, :remote => true %>

然后在js响应文件中添加以下内容,

$('#paginate').html('<%= escape_javascript(paginate(@arr_name, :remote => true).to_s) %>');

这样你的请求将会是AJAX方式。

谢谢。


请使用四个空格或反引号格式化您的代码。谢谢。 - Ryan Bigg
4
您的问题是什么? - Fivell
@Fivell 他不确定这是否是正确的方法? - Roger
1个回答

77
这是使用Kaminari分页数组对象的唯一可用的辅助方法。另一个选择是,如kaminari wiki页面中建议的解决方案,将实例方法添加到数组对象中。
如果您正在尝试基于ActiveModel返回类型的常见解决方案(.all返回数组和.where返回ARL),则以下是一个解决方法。
unless @arr_name.kind_of?(Array)
  @arr_name = @arr_name.page(params[:page]).per(PER_PAGE_RECORDS)
else
  @arr_name = Kaminari.paginate_array(@arr_name).page(params[:page]).per(PER_PAGE_RECORDS)
end

14
好的解决方案。只是小建议@Sethupathi。最好使用“if else”而不是“unless else”,这是最佳实践 :) 干杯! - Ron
非常好的解决方案。非常感谢! - fmquaglia

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接