3
我在sinatra重建一个小轨道(太矫枉过正)的应用程序。我有这样的路线:西纳特拉路线正则表达式约束?
match 'verify/:name/:bundle/:license' => 'verify#index', :constraints => { :bundle => /.*/ }
我怎么能rebould它西纳特拉在约束属性中的项?
谢谢!
我在sinatra重建一个小轨道(太矫枉过正)的应用程序。我有这样的路线:西纳特拉路线正则表达式约束?
match 'verify/:name/:bundle/:license' => 'verify#index', :constraints => { :bundle => /.*/ }
我怎么能rebould它西纳特拉在约束属性中的项?
谢谢!
您可以这样来做:(从Sinatra's documentation拍摄)
get %r{/hello/([\w]+)} do
"Hello, #{params[:captures].first}!"
end
或者块本身内:
get '/hello/:name' do
raise Sinatra::NotFound unless params[:name].match /\w+/
"Hello, #{params[:name]}!"
end
如果你使用Ruby 1.9,你可以使用一个名为捕获在正则表达式路由中,像这样:
require 'sinatra'
get %r{verify/(?<name>\w+)/(?<bundle>.*)/(?<license>\w+)} do |name, bundle, license|
# do stuff
end