Ruby on Rails3 一覧を月次で表示できるようにした

レシート一覧を月ごとにも表示したかったので、ルーティングについて調べてみた。

[環境]
Windows8
Ruby 1.9.3(p125)
Ruby on Rails 3.2.9


config\routes.rbに下記のように記載する。

match "receipts/:month", :controller => :receipts, :action => :index, :as => :receipt_month

app\controllers\receipts_controller.rbのindexに下記のように記載する。

if  params[:month] == nil
  @receipts= Receipts.all
else
  start_date = Date.new(2013, params[:month].to_i, 1)
  if params[:month].to_i != 12
    end_date = Date.new(2013, params[:month].to_i + 1, 1)
  else
    end_date = Date.new(2014, 1, 1)
  end
  @journals = Journal.where(:date => start_date...end_date).all
end

※年の取得は省略した

参考:
ルーティング(routes) - Railsドキュメント