我正在尝试编写一个将组件组合在一起的 Sinatra 应用程序(有点像控制器)。所以对于“博客”相关的东西,我想要一个名为Blog
mount at的应用程序/blog
。应用程序中包含的所有路由Blog
都与其安装路径相关,因此我可以简单地定义一个index
路由,而无需在路由中指定安装路径。
我最初是通过使用 config.ru 文件并map
设置到不同应用程序的路由来处理这个问题的。我遇到的问题是我使用了各种需要包含在所有应用程序中的 sinatra gems/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