Ruby Sinatra,在哪里放置所需支架

Ruby Sinatra,在哪里放置所需支架,ruby,sinatra,Ruby,Sinatra,我目前正在开发Sinatra/Rack应用程序,我遇到了一个设计问题。我四处看了看,我不太确定把大部分require语句放在哪里 我想它们会出现在两个地方中的一个,或者是在需要Sinatra之后出现在main.rb中,或者出现在config.ru中,所以它们都是在应用程序开始时加载的 我目前倾向于使用main.rb,因为所有测试应用程序都会加载它 谢谢你的帮助。看看Engine Yard的这篇博文。它很好地解释了您想知道的内容:我推荐: 仅从config.ru中需要主应用程序文件 需要Sina

我目前正在开发Sinatra/Rack应用程序,我遇到了一个设计问题。我四处看了看,我不太确定把大部分
require
语句放在哪里

我想它们会出现在两个地方中的一个,或者是在需要Sinatra之后出现在
main.rb
中,或者出现在
config.ru
中,所以它们都是在应用程序开始时加载的

我目前倾向于使用
main.rb
,因为所有测试应用程序都会加载它


谢谢你的帮助。

看看Engine Yard的这篇博文。它很好地解释了您想知道的内容:

我推荐:

  • 仅从
    config.ru
    中需要主应用程序文件
  • 需要Sinatra并在主应用程序中查看宝石
  • 为每个助手、模型和路线创建单独的
    init.rb
    文件,并在主应用程序中需要这些文件
  • 在models/init.rb中需要与数据库相关的gem
下面是我使用的布局示例:


请注意,通过加载与DB相关的gem并在models/init.rb中设置DB,您可以(从IRB)加载该文件,并使您的完整模型堆栈可供查看。

查看我的源代码。

:)

刚刚意识到我必须删除模型中的所有require语句,因为它们根本不需要


其中最有趣的文件是bootloader.rb。如果您想遵循请求路径,请从作为应用程序前端控制器的配置ru开始。

Hey here!我目前正在使用Bundler,我可以要求第三方gems。但是我已经在
lib
目录中的单独文件中编写了我自己的类。我的问题更适合所有这些文件。谢谢@埃里克,那么我建议要求他们作为。。。必选。Ok有意义。顺便说一句,Bundler.require\u env已被弃用。正确的语法是now(Bundler.require)[@Eric True。这篇文章现在有点过时了。这正是我想要的。非常感谢。我只是投票支持这个答案,还有链接的答案。我听从了你的建议,孩子,我得到了很棒的结果了吗?继续!