每页自定义kaminari宝石

时间:2013-05-08 10:06:09

标签: ruby-on-rails-3.2 rubygems

我正在使用Kaminari gem和rails 3.2应用程序。它工作正常。现在我想用[5,10,15,20]选项添加每页自定义下拉列表。 对于每页选择的分页链接应保留每页值。 实现此每页自定义功能的最佳方法是什么?

2 个答案:

答案 0 :(得分:7)

添加GET表单。

<%= form_tag posts_path, method: :get do %>
  <%= select_tag :limit, options_for_select([5, 10, 15, 20], selected: params[:limit] || 10) %>
<% end %>

在你的控制器中添加

@posts = @posts.per(params[:limit]) if params[:limit]

这假设您的资源是帖子,但显然您可以将其更改为您正在分页的任何内容。

当然,您需要以某种方式触发表单,方法是添加提交按钮或通过javascript。

答案 1 :(得分:1)

最好的指南简单解释了kaminari gem是如何工作的,我建议你阅读一下这个教程。http://railscasts.com/episodes/254-pagination-with-kaminari。 kaminari宝石是有助于分页选择的最佳宝石。

@products = Product.order("name").page(params[:page]).per(5)

对于您的自定义选项,您必须从下拉框中读取您的选项,并将5替换为我们从用户获得的变量。对于下拉框

<td><%= f.select :experiance_year, options_for_select([*0..10 ],0)%></td>

这里experiance_year是从用户那里获得输入的变量。