URLに応じて、月、日、または年のいずれかのカレンダービューを印刷する小さなsinatraの例を作成しようとしています. そのような
localhost:4567/calendar/2012 は年ビューのカレンダーを出力します
localhost:4567/calendar/2012/9 は月のカレンダーを出力します
localhost:4567/calendar/2012/9/15 は、日表示のカレンダーを出力します
私はこれを次のように機能させています:
require 'sinatra'
get '/calendar/:year/:month/:day/?' do
"printing daily calendar for #{params[:year]}/#{params[:month]}/#{params[:day]}"
end
get '/calendar/:year/:month/?' do
"printing monthly calendar for #{params[:year]}/#{params[:month]}"
end
get '/calendar/:year/?' do
"printing yearly calendar for #{params[:year]}"
end
私の質問は、:month 部分が 1 から 12 の間で、:day 部分が 1 から 31 の間である場合にのみ URL がカウントされると言えるように、ある種の RegEx を使用してこれらのルートをさらに絞り込むことはできますか?