3

sinatra で小さな Rails (やり過ぎ) アプリを再構築します。私はこのようなルートを持っています:

match 'verify/:name/:bundle/:license' => 'verify#index', :constraints => { :bundle => /.*/ }

制約属性に関して、シナトラでそれをどのように再構築できますか?

ありがとう!

4

2 に答える 2

3

次のいずれかの方法で実行できます: (シナトラのドキュメントから取得)

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
于 2012-06-27T12:33:35.737 に答える
2

Ruby 1.9 を使用している場合は、次のように正規表現ルートで名前付きキャプチャを使用できます。

require 'sinatra'

get %r{verify/(?<name>\w+)/(?<bundle>.*)/(?<license>\w+)} do |name, bundle, license|
  # do stuff
end
于 2012-06-27T12:54:42.823 に答える