will_paginateでページ数がおかしい
ActiveRecord+will_paginateで、ページ数を表示する為のcountのSQLがうまくいかずに、ページ数がおかしいということがあった。
SQLの結果は、22件なのに、なぜかcount用のSQLは11件。
うまく、いかないので、直にSQL書くしかないのかなぁ。と思ったが、ググったら他にもそういう人がいるようだった。
http://stackoverflow.com/questions/7939719/will-paginate-generates-wrong-number-of-page-links
結論としては、paginateのtotal_entriesオプションに件数をセットしてあげれば、その件数を全体の件数として認識してくれるようでした。
count = Meet.joins(:legs).where(state_id: state_id). count("distinct meets.id,year,month,seq,meets.name") @meets = Meet.joins(:legs).where(state_id: state_id). select("meets.id,year,month,seq,meets.name"). distinct.paginate(:page => page, :per_page => 20, :total_entries=> count)
しかし、公式のドキュメントには、書かれてないのね。