RubyonRailsでページングする方法

2009-09-28
このエントリーをはてなブックマークに追加

will_paginateを利用します。とってもらくちんです。

require ‘will_paginate’

def hoge
  @items = Item.pagenate(
                  :conditions => [“hoge= ?”, hoge],
                  :page => params[:page],
                  :per_page => 30)
end

コントローラ側は以上。30レコードでページングします。find_by_sqlみたいな使い方も可能です。

  @items = Item.paginate_by_sql(
                  [“select * from hoge where hoge = ?”, hoge],
                  :page => params[:page],
                  :per_page => 30)

たいして変わりません。View側も通常のActiveRecordとの違いは

<%= will_paginate @items, :prev_label => ‘< 前’, :next_label => ‘次 >’ %>

こういうタグを記述しておけば勝手にページングアンカーが表示されるようになるくらいです。

:prev_labelは指定しなくてもOKです。デフォルトの文字列が表示されます。

 

MySQLで日付の差分を取得する

2009-09-18
このエントリーをはてなブックマークに追加

timestampdiff(day, from_date, till_date)

これだけです。
第一引数は「month」、「year」で月、年の差も取れます。第二第三引数はtimestampじゃなくてもいいです。まぁTime型だとダメなんだろうけど、Date型だったらちゃんと差分が取得できました。

「登録から~日の情報」みたいな取得の仕方をすることが多いので、こういう関数は使用頻度が高いです。

Tags: