sinatra 框架的 MVC 模式

MVC pattern for sinatra frame work

我想开始使用 'Sinatra' 框架进行编码,但找不到该框架的 'MVC' 模式。 是 'MVC-Sinatra' 模式还是框架?

Sinatra 非常简单,您可以将模型和控制器放在一个文件中。

请参阅 here 以获取有关操作方法的非常简短的指南。

总结几点,

  • 连接到数据库并编写模型。您可以为此使用 datamapper、activerecord 等。根据我的经验,datamapper 很好,因为您不需要编写迁移。但是activerecord有更好的查询接口。
  • 编写控制器操作/路由
  • 在 /views 目录中写入视图。资产进入 /public 目录。 /views/layout.erb 如果包含 <%= yield %>
  • 可以用作布局

您可能想看看 Padrino

这是一个围绕 Sinatra 构建的框架,可为您的项目提供更 "Rails like" 的感觉,但没有那么多隐藏的魔力。这是使用 Sinatra 可以做什么的一个很好的例子。

虽然如果您需要开始使用这很好,但我个人建议您将它用作学习工具,以对您来说最有意义的方式使用 Sinatra 构建您自己的应用程序。写一些测试/期望,写一些代码,通过测试 - 重复 :)

至于 ORM,您还应该查看 Sequel,它(恕我直言)非常简单但非常灵活和强大。

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 - 您所有宝石的存放地。

App 目录 - MVC 目录的文件夹 - 模型、视图和控制器。

模型目录 - 包含应用程序背后的逻辑。

控制器目录 - 应用程序配置、路由和控制器操作的实现位置。

Views Directory - 包含将在浏览器中显示的代码。

config.ru - 当构建基于 Rack 的应用程序并使用 rackup/shotgun 启动应用程序服务器时,config.ru 文件是必需的( ru 代表 rackup).

配置目录 - w/ environment.rb 文件将应用程序中的所有文件连接到适当的 gem 并相互连接。

Public 目录 - 存放你的前端资产 - CSS / JS / 图片等...

规范目录 - 包含您的应用程序的所有测试。