我在 sinatra 中重建了一个小 Rails(太矫枉过正)应用程序。我有这样的路线:
match 'verify/:name/:bundle/:license' => 'verify#index', :constraints => { :bundle => /.*/ }
就约束属性而言,我如何在 sinatra 中对其进行重构?
谢谢!
我在 sinatra 中重建了一个小 Rails(太矫枉过正)应用程序。我有这样的路线:
match 'verify/:name/:bundle/:license' => 'verify#index', :constraints => { :bundle => /.*/ }
就约束属性而言,我如何在 sinatra 中对其进行重构?
谢谢!
您可以这样做:(取自Sinatra 的文档)
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