作業週:ページングの変更(着手まで)
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 をやっていて、デフォルトのホームの下にごっちゃになった環境を作っていた)。
参考リンク
- bundlerの公式マニュアル http://gembundler.com/v1.2/bundle_install.html
- Kaminariの使い方 Rails3時代のpaginationの標準候補 http://memo.yomukaku.net/entries/238