【问题标题】:General advice and recommended folder structure - Sinatra一般建议和推荐的文件夹结构 - Sinatra
【发布时间】:2013-09-07 19:05:12
【问题描述】:

您将如何构建一个简单的 Sinatra 应用程序?

我正在制作它,我希望该应用具有以下功能:

  1. “应用程序”更像是一个管理仪表板,用于显示其中的所有信息。然后另一个应用程序将通过 REST 访问信息。我还没有创建仪表板,只是从数据库中获取东西
  2. 会话和身份验证(尚未实现)
  3. 您可以上传图片,其他应用可以显示这些图片
  4. 我已经使用 RSpec 创建了一个测试文件
  5. 通过 Prawn 生成报告

目前的设置是这样的:

app.rb
test_app.rb

因为我实际上只有应用程序和测试文件。到目前为止,我已经将 Datamapper 用于 ORM,将 SQLite 用于数据库。这是我的第一个 Ruby/Sinatra 项目,因此欢迎任何和所有建议 - 我应该使用哪些其他库,我应该放置 config.ru 之类的东西等等。

【问题讨论】:

  • @Theta 说得对,Sinatra 没有固执己见。但是,就像任何组织良好的 Ruby 项目一样,您可能希望遵守每个文件一个类的准则。例如,您可能有一个 Report 类,即 report.rb 和 test_report.rb。

标签: ruby-on-rails ruby rspec sinatra


【解决方案1】:

Sinatra 在文件结构方面并不固执己见,您可以随意放置文件。当我刚开始的时候,我只是把所有东西都放在顶层,但是随着时间的推移,阅读人们如何构建他们的代码,阅读 gems 的源代码,我已经将我的代码分解成更小的 .rb 文件,这些文件实现了特定的功能并将所有其中在 /lib 下,这可能是从 rails 继承下来的约定,但在 rails 中没有任何与之相关的魔法。如果您使用 scss 或 coffee 脚本,它们依赖于某些文件夹的存在,随着时间的推移,您会自己发现(即使这样,您也可以根据需要重新配置它们),从中您将找出最适合您的方法。

如果你写了一个restful api,看看grape - https://github.com/intridea/grape

您还会发现 sinatra-contrib 非常有用 - https://github.com/sinatra/sinatra-contrib

至于如何处理您的 config.ru - https://github.com/rack/rack/wiki/%28tutorial%29-rackup-howto

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-12-08
    • 1970-01-01
    • 1970-01-01
    • 2019-05-20
    • 1970-01-01
    • 1970-01-01
    • 2015-07-30
    • 1970-01-01
    相关资源
    最近更新 更多