[Rails][will_paginate]検索数の表示

お仕事でRuby on Railsを使って不動産会社のホームページを作ってます。
物件検索機能がほしいということなので、will_paginateって言うページネーションを使って、検索された物件情報をページごとに表示させることにしました。


使い方はすごく簡単。
普通のRailsでの検索方法「Item.find~」と同じように「Item.paginate~」ってやればいい。
表示ページを指定する:pageや1ページに表示する件数を指定する:per_pageの指定をしないといけないけど、後はfindと同じように利用できる。


ここで、ちょっとはまったのが、検索対象の件数をとってくる方法。
例えば、ある条件で検索絞込みをしたら、50件が検索ヒットしたとすると、1ページに10件表示の設定の場合、5ページまでのページリンクは作られるけど、どこにこの「50件」っていう数字が入っているのだろうか?
Item.paginate~で取得する配列には、1ページの表示数分のレコードしか入っていないから、@items.size => 10ってなって、50って数字はどこにあるのか分からない。


google君で探したけど、こういうのってどういうキーワードならヒットするのか、調べるのにも一苦労しそうな雰囲気。
しょうがいないってことで、RDocの中身をのぞいたけど、それらしいのが分からない。
適当に、@items.countとかって指定したら、やっぱりエラー・・・face07
そのエラー文で、「ActionView::TemplateError (undefined method `count' for #<WillPaginate::Collection:0xb6ccac84>) on line #43 of ~」なんて記載を発見。
そっか、WillPaginate::Collectionクラスに情報がありそうだと目をつけ、RDocで関連クラスを調査。
「total_entries」ってなんだか怪しそうなメソッドを発見。
でも、RDocでは説明文なし・・・
使ってみるかと、「検索数:<%= @items.total_entries %>」としてみたら、見事にビンゴ!face02


いや~、えがったえがった。


同じカテゴリー(ネット)の記事画像
成長が遅いなあ
同じカテゴリー(ネット)の記事
 [ネットゲーム][トラビアン]トレードミス (2010-01-26 18:51)
 [ネットゲーム]トラビアンをはじめた (2010-01-21 23:46)
 [SNS]mixi同級生 (2009-12-08 09:47)
 [ネットサービス]ドロップシッピング (2009-08-26 17:42)
 [クラウド]クラウドって何さ (2009-08-11 17:02)
 [php][CMS]xoopsを触ってみた (2009-06-12 16:21)
プロフィール
るいーじ
るいーじ
東京のIT会社からUターンで地元の長野に戻ってきた技術屋です。
今はIT技術とともに、経理・総務にも携わっています。
備忘録的に、情報をまとめてみたいと思います。
アクセスカウンタ
< 2024年12月 >
S M T W T F S
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31        
インフォメーション
長野県・信州ブログコミュニティサイトナガブロ
ログイン

ホームページ制作 長野市 松本市-Web8