我在sinatra重建了一个小轨(太矫枉过正)的应用程序。我有这样的路线:
match 'verify/:name/:bundle/:license' => 'verify#index', :constraints => { :bundle => /.*/ }
我怎样才能在约束属性方面在sinatra中重新组合它?
谢谢!
答案 0 :(得分:4)
您可以这样做:(取自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
答案 1 :(得分:2)
如果您使用的是ruby 1.9,则可以在正则表达式路由中使用命名捕获,如下所示:
require 'sinatra'
get %r{verify/(?<name>\w+)/(?<bundle>.*)/(?<license>\w+)} do |name, bundle, license|
# do stuff
end