私は Sinatra を使用しており、URL にリファラー コードのようなものを使用して、アクセスを制御し、特定の URL の出所を特定したいと考えています。
/secret-code/rest/of/path
「secret-code」が所定のリストにない場合は拒否する必要があります。
ルート条件を使いたい
set(:valid_tag) { |tag| condition { tag === 'abcd' } }
get '/:tag', :valid_tag => params[:tag] do
'Hello world!'
end
ただし、params はスコープ外です。ブロックでディスパッチする必要がありますか? 各ルートでタグチェックロジックを複製することなく、複数のルートを処理する最良の方法は何ですか?
/secret/route1/
/secret/route1/blah
/secret/route2/
ハンドラをチェーンする方法はありますか? 僕にできる
get /:tag/*
# check :tag
redirect_to_handler(params[:splat])