Rails Kaminari:每页的项目如何设置

Jak*_*kub 3 ruby-on-rails kaminari ruby-on-rails-4

我正在尝试使用Kaminari分页来设置一个框,用户可以在其中设置每页显示的项目数.我有一个问题,因为我得到错误`undefined method to_i'for:limit:Symbol你的意思是?to_s

我以下一个方式设置了它:

控制器:

def index
    @books = Book.order(:name).page(params[:page]).per(:limit)
  end
Run Code Online (Sandbox Code Playgroud)

视图:

<div class="pull-left">
    <%= form_tag controller_name, method: :get, id: 'limit_form' do %>
        <div class="select-tag">
          Show <%= select_tag :limit, options_for_select([5, 10, 15, 20], selected: params[:limit] || 10), onchange: "$('#limit_form').submit();" %> documents per page
        </div>
    <% end %>
  </div>
Run Code Online (Sandbox Code Playgroud)

dro*_*oro 5

我想你忘了引用params- 你的控制器方法不知道是什么:limit,因为它只是你的参数中的一个关键.

而不是这个:

.per(:limit)
Run Code Online (Sandbox Code Playgroud)

试试这个:

.per(params[:limit])
Run Code Online (Sandbox Code Playgroud)