我想用'Sinatra'框架开始编码,但是我找不到这个框架的'MVC'模式。 是“MVC-Sinatra”模式还是框架?sinatra框架工作的MVC模式
回答
Sinatra是一个轻量级图书馆,其目的是保持你的方式,让你敞开大门,包括或创建你需要每个项目。这就是说,你可以很容易地在Sinatra之上创建自己的MVC,并将ActiveRecord,DataMapper,Sequel等合并到你的模型中。这里有一个样本结构 -
├── Gemfile
├── README.md
├── app
│ ├── controllers
│ │ └── application_controller.rb
│ ├── models
│ │ └── model.rb
│ └── views
│ └── index.erb
├── config
│ └── environment.rb
├── config.ru
├── public
│ └── stylesheets
└── spec
├── controllers
├── features
├── models
└── spec_helper.rb
的Gemfile - 所有你的宝石去。
应用程序目录 - MVC目录的文件夹 - 模型,视图和控制器。
模型目录 - 拥有您的应用程序的逻辑。
控制器目录 - 执行应用程序配置,路线和控制器操作。
视图目录 - 保存将显示在浏览器中的代码。
config。ru - 构建基于Rack的应用程序并使用rackup/shotgun启动应用程序服务器时,需要使用config.ru
文件(ru代表rackup
)。
配置目录 - 瓦特/ environment.rb
fileto在应用程序中的所有文件连接到相应的宝石和给对方。
公共电话簿 - 握着你的前端资产 - CSS/JS /图片等
规格目录 - 包含应用程序的任何测试。
Sinatra非常简单,您可以将模型和控制器放在一个文件中。请参阅here了解如何操作。
总结一些要点,
- 连接到数据库,并编写模型。你可以使用datamapper,activerecord等。根据我的经验,datamapper非常好,因为您不需要编写迁移。但activerecord具有更好的查询界面。
- 写入控制器动作/路由
- 在/ views目录中写入视图。资产进入/ public目录。 /views/layout.erb可如果它包含
<%= yield %>
有关如何使用独立机架安装的Sinatra类作为基于Sinatra的较大应用程序的控制器的想法:http:// stackoverflow .com/questions/30421971/how-to-map-routes-to-controllers-in-sinatra/30470141#30470141 – photoionized
- 1. mvc模式,框架,实现
- 2. 没有实体框架的MVC模式
- 3. Sinatra测试框架
- 4. 在Sinatra框架中使用haml模板
- 5. 创建使用MVC模式框架enitity
- 6. MVC实体框架WillCascadeOnDelete不工作
- 7. AOP在Spring Web MVC框架不工作
- 8. mvc如何在Zend框架中工作
- 9. MVC架构模式
- 10. MVC架构 - 模式
- 11. Zend框架的形式散不工作
- 12. 组件基础MVC框架和基于动作的MVC框架
- 13. ASP .NET/MVC模型框架
- 14. 实体框架是否真的需要工作单元模式?
- 15. 工作模式和实体框架的单元:IObjectContextStorage?
- 16. 没有工作模式的实体框架
- 17. 实体框架和工厂模式
- 18. Eclipse建模框架 - 工作流程?
- 19. 模拟框架如何工作?
- 20. Bot框架模拟器不工作
- 21. GUI框架模式?
- 22. 实体框架工作单元模式对象生命周期
- 23. 框架工作在怪癖模式(IE9 - IE10)?
- 24. 实体框架和ADO.NET与工作单元模式
- 25. jquery的框架工作
- 26. MVC模式如何在ZKoss中工作
- 27. 引导模式不工作ASP.NET MVC
- 28. 引导3模式在MVC不工作
- 29. 犀牛模拟实体框架使用的UnitOfWork模式不工作
- 30. System.Data.Entity的工作不正常的MVC实体框架
Sinatra非常轻薄,对于不需要太多开销的快速事物来说非常棒。如果您需要的不仅仅是这些,Rails可以被剥离为基础,并提供一个非常强大的MVC环境。 – tadman
...而且你不是Rails人,请考虑[Hanami](http://hanamirb.org/)。另外,如果您想了解[Rack](http://rack.github.io/)背后的概念并提高您的Ruby知识面,请考虑以下其他超轻量级替代方案:[古巴](http:// cuba .is /)和[Roda](http://roda.jeremyevans.net/) – microspino