0

我正在开发一个 Sinatra 应用程序。为了简化结构以获得更容易的未来支持,我添加了一些自定义类,它们位于单独的文件中。我想要做的是让他们使用现有的助手和 sinatra 自己的功能(模型、会话等),而无需重复代码。

例如,我有一个助手to_html(文本),我想在 sinatra 路由和我自己的类中使用它,这些类也将在路由中使用。

我的 sinatra 应用程序以经典风格编写(如果您的建议很重要)。

可能吗?

4

1 回答 1

0

假设您在项目的根目录中有一个 helpers 目录,您可以在用于运行服务器的应用程序文件中执行类似的操作。

%w(helpers).each { |p| Dir[File.join(File.dirname(__FILE__), p, "*.rb")].each { |file| require file } }

您需要在此下方包含您的路线才能使其正常工作。为了使这更加干净,您还可以拥有一个 routes/controllers 目录。只需将“路由”添加到该数组,如下所示:

%w(helpers routes).each { |p| Dir[File.join(File.dirname(__FILE__), p, "*.rb")].each { |file| require file } }

这将需要你所有的助手然后你的路线。

于 2012-08-10T03:52:22.473 回答