作業週:ページングの変更(着手まで)

Rails の定番ページングライブラリの1つに、 kaminari(by amatsuda さん)があります。これの使い方のカスタマイズをやる(リロードでやっているページングをAjaxに変える)、というタスクを自分に入れてやってみることにした。

とりあえずググると、ご本人が回答されている。
http://stackoverflow.com/questions/5158532/ajax-pagination-with-the-kaminari-gem

Q. Does anyone have any hints or tutorials on how to do this? 
A. (略)could you take a look at the commits here on "ajax" branch? 
https://github.com/amatsuda/kaminari_example/commits/ajax
Hope this helps!

このkaminariのサンプルをまず動かして、使い方を理解することにした。


git clone で落としてくる。
rbenv でローカル環境を設定。

rbenv local 1.9.3-p327 

1. マニュアルのとおり、kaminari をインストール。私の場合、gem はグローバルを使わず、プロジェクトごとに落とすので、--path を指定。

bundle install --path vendor/bundle

2. db:migrate でデータを入れる。<ココが最初思いつかなかったのだけれど、Railsの常識過ぎていちいちドキュメントされないところだった。

bundle exec rake db:migrate

これでサンプルが動くようになった。

3. ページングの設定を変えてみる。

rails g kaminari:config 

して、デフォルトの設定を変えられる。

bundler 関係のトラブルシューティング

これは私の環境固有の問題なのだけれど、最初、

rails g kaminari:config 

すると、

Could not find generator kaminari:config.

とエラーになった。こんなときは、引数なしで、

rails g

として、自分の持っているジェネレータの一覧を見る。

Kaminari:
  kaminari:views

たしかにconfig が無いことが判明。公式ドキュメントと自分の環境に違いがあることが分かった。
ローカルのバージョン確認。

gem list kaminari                
*** LOCAL GEMS ***
kaminari (0.10.4)

リモートのバージョンを確認。

gem list kaminari -r
*** REMOTE GEMS ***
kaminari (0.14.1)
kaminari-admin-theme (0.0.1)
kaminari-bootstrap (0.1.3)
kaminari-i18n (0.1.3)

自分のは、古いな。ということで、

bundle update kaminari

したら、無事kaminari:configが入りました!

rbenv の bundle で、パスを指定していなかったのが間違い。私の場合、怖話や、各種サンプルで、それぞれ bundle を使うので、毎回プロジェクト毎にbundle のパスを切る方が、好都合なのでした(今まで、パス無しでbundle をやっていて、デフォルトのホームの下にごっちゃになった環境を作っていた)。

参考リンク