我想用'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