sinatra で小さな Rails (やり過ぎ) アプリを再構築します。私はこのようなルートを持っています:
match 'verify/:name/:bundle/:license' => 'verify#index', :constraints => { :bundle => /.*/ }
制約属性に関して、シナトラでそれをどのように再構築できますか?
ありがとう!
sinatra で小さな Rails (やり過ぎ) アプリを再構築します。私はこのようなルートを持っています:
match 'verify/:name/:bundle/:license' => 'verify#index', :constraints => { :bundle => /.*/ }
制約属性に関して、シナトラでそれをどのように再構築できますか?
ありがとう!
次のいずれかの方法で実行できます: (シナトラのドキュメントから取得)
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