コンポーネントをグループ化する Sinatra アプリケーションを作成しようとしています (コントローラーのようなもの)。ということで、「ブログ」関連では、Blog
mounted atというアプリが欲しいです/blog
。Blog
アプリに含まれるすべてのルートは、マウントされたパスに対して相対的であるため、index
ルートでマウント パスを指定しなくても、単純にルートを定義できます。
私は当初、 config.ru ファイルを使用しmap
てさまざまなアプリへのルートを指定することでこれを処理していました。私が遭遇したこれに関する問題は、すべてのアプリに含める必要があるさまざまなsinatra gem/extensions/helperを使用していたため、多くの重複コードがあったことです.
アプリで定義されたルートがアプリがマウントされている場所に関連するように、あるsinatraアプリを別のアプリ内にマウントするにはどうすればよいですか? これがすぐに使用できない場合は、これを行う方法のコード サンプルを示してもらえますか?
これがどのように見えるかの簡単な例を次に示します。
class App
mount Blog, at: '/blog'
mount Foo, at: '/bar'
end
class Blog
get '/' do
# index action
end
end
class Foo
get '/' do
# index action
end
end