一般建议和推荐的文件夹结构 - Sinatra

时间:2013-09-04 10:10:24

标签: ruby-on-rails ruby rspec sinatra

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

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

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

    app.rb
    test_app.rb
    

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

1 个答案:

答案 0 :(得分:9)

对于您的文件结构,Sinatra并不自以为是,您可以根据自己的喜好放置文件。当我第一次开始时,我只是将所有内容放在最顶层,但随着时间的推移阅读人们如何构建代码,阅读宝石的源代码我将我的代码分解为更小的.rb文件,这些文件实现了特定功能并放置了所有内容它们是/ lib下的一个约定,它可能是从rails继承而来的,但它没有任何与它相关的魔法。如果您使用scss或coffee脚本,它们依赖于某些文件夹存在,您将随着时间的推移自己发现(即使这样您可以根据需要重新配置它们),从中您将找出最适合您的文件。

如果你写了一个安静的api,请查看葡萄 - 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