rails3.2でkaminariを同一ページに複数使う
kaminariはrailsのgem。超便利でどうやらデファクトスタンダードらしい。
早速使ってみたけど自分としては珍しく特につまずくポイントはなかった。
注意点として同一ページに複数使う場合だけパラメータを分ける必要がある。
通常だと
projects_controller.rb
def index
@projects = Project.page(params[:page])
end
app/views/projects/index.html.erb
<%= paginate @projects %>
となる。これを
projects_controller.rb
def index
@projects = Project.page(params[:projects_page])
end
app/views/projects/index.html.erb
<%= paginate @projects, params_name: 'projects_page')
とする。
ここで重要なのはview側でオプションとしてparams_nameで取った値とcontoroller側でpageメソッドの引数として取るパラメータの値を一致させること。これで複数のkaminariを使っていても個別にページネーションが出来る。