ruby - 如何运行我的模块化 Sinatra 应用程序?

标签 ruby sinatra

我正在构建 Lovers 的新版本与西纳特拉。您可以查看Lovers source code on GitHub .

通过 CLI 从存储库的根目录运行 cucumber,我能够在 cucumber 模式下成功运行我的应用程序。但是...

1) 如何在开发模式下运行应用程序?

这有点棘手,因为它是一个模块化应用程序,我已将 app.rb 文件移至 lib/lovers/application.rb .

2) 如何使用 shotgun 运行它,以便它在每次 HTTP 请求时自动重新启动应用程序?

3) 当您为 Sinatra 应用程序运行 ruby app.rb 时,它实际上会做什么?

如果你很好地回答了第 3 部分,我想我就能找到第 1 部分和第 2 部分的答案。

谢谢!

最佳答案

1) 只需从项目根目录运行 bundle exec shotgun 即可。 Shotgun 与 Thin 等其他机架服务器不同,是专门设计的...实际上...仅设计用于“开发”模式...因为如果代码发生更改,它会重新加载您的代码。

2) 为什么要针对每个请求?霰弹枪会根据需要自动重新装弹。

3) ruby app.rb 运行一个小型应用程序服务器(如下所示: http://www.sinatrarb.com/ ),但可能不是您想要的。霰弹枪应该可以解决问题。

这里最重要的是在loversapp根目录下的config.ru。这就是霰弹枪和其他机架服务器所寻求的。它加载您的lib/lovers/application.rb,设置正确的RACK_ENV,并调用run Lovers::Application

关于ruby - 如何运行我的模块化 Sinatra 应用程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4941238/

相关文章:

ruby - 在 Sinatra 本地测试 HTTPS

ruby - sinatra 的 Activerecord 或 sinatra-activerecord

ruby-on-rails -::ModuleName::ClassName 和 ModuleName::ClassName 有什么区别

ruby - 如何使用 Ruby 在 Hadoop HDFS 中写入和读取文件?

ruby - 访问非标准 s3 存储桶

ruby - Rack 和 Passenger 有什么区别?

ruby - 如何修复错误? ' ....rubocop- ... revealed dependencies not in the API ..."

java - saml 集成 Ruby(IDP) 和 Java(SP)

ruby - wami-recorder 和 Sinatra

ruby - Sinatra 中的 DataMapper 错误 - NameError : Cannot find the child_model