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 / 图片等...
规范目录 - 包含您的应用程序的所有测试。
我想开始使用 '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 / 图片等...
规范目录 - 包含您的应用程序的所有测试。