共通の基本パスがあります。言う:get /base
基本的な認証を実行し、そのパスの下のすべてのサブ呼び出しに対して機能させる必要がある場所。言う:get /base/foo
とget /base/bar
.
http://www.sinatrarb.com/intro.html#Helpersを見ると、ヘルパーを使用してこれを行うことができるはずです。pass
ドキュメントでヘルパーとcall
アンダートリガーの新しいルートの使用を見ていました。しかし、私が読んだ別の提案は、正規表現IE%r{/base/?:(path)?}
などを使用して動的ルーティングを使用することでした。それではどうですか:
def '/base'
# do some funky basic auth stuff here
# to work with all request to this common
# base path?
pass
end
def %r{/base/?(path)?} do |path|
case path
when 'foo'
# do something.
when 'bar'
# do something else.
end
# some kind of redirection or template rendering here:
erb :template
end
この種のことを以前に扱った人はいますか?DRYに保つようにしています。もちろん、与えられた例がパラメーターを保存するのに最適かどうかはわかりません。