我正在尝试制作一个小的 sinatra 示例,它将根据 URL 打印一个月、一天或一年的日历视图。这样
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
我的问题是,我是否可以使用某种正则表达式进一步优化这些路由,以便我可以说 URL 仅在 :month 部分在 1 到 12 之间并且 :day 部分在 1 到 31 之间时才有效?