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

Dar*_*tos 5 ruby rspec ruby-on-rails sinatra

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

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

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

目前设置就是这样:

app.rb
test_app.rb
Run Code Online (Sandbox Code Playgroud)

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

小智 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