本文概述
脚手架介绍
脚手架是一种快速生成应用程序主要部分的方法。为了通过一次操作为新资源自动生成一组模型, 视图和控制器, 使用了脚手架。
脚手架是MVC框架支持的一种技术, 程序员可以在其中指定如何使用应用程序数据库。框架或编译器将其与预定义的代码模板一起使用, 以生成最终代码, 应用程序可使用该最终代码在数据库条目中执行CRUD, 从而有效地将模板视为”脚手架”, 以在其上构建功能更强大的应用程序。
支架发生在程序生命周期的两个不同阶段, 即设计时间和运行时间。设计时脚手架会生成代码文件, 这些代码文件以后可由程序员修改。运行时脚手架可即时生成代码。它允许对模板设计的更改立即反映在整个应用程序中。
脚手架
Rails框架使脚手架变得流行。
将行脚手架:model_name添加到控制器后, Rails将在运行时自动生成所有适当的数据接口。
也可以使用外部命令预先为支架生成Ruby代码, 即rails生成支架model_name。生成的脚本将生成Ruby代码文件, 应用程序可使用该文件与数据库进行交互。
从Rails 2.0开始, 不再支持动态脚手架。
嵌套脚手架
嵌套支架是为Rails 4.2和5生成一组完美工作的嵌套资源的命令。
特征
- 使用单个命令生成嵌套的子资源
- 生成一堆精美的代码
- 自动为ActiveRecord生成适当的模型关联
- 哈姆准备好了
句法
要安装嵌套支架, 请使用以下命令。
gem 'nested_scaffold'
创建资源
要为发布资源生成支架, 请输入以下命令:
rails generate scaffold Post name:string title:string content:text
脚手架生成器将在你的应用程序中使用一些文件夹构建多个文件。
以下文件将使用脚手架创建。
File | Purpose |
---|---|
db/migrate/20100207214725_create_posts.rb | 在数据库中创建发布表 |
app/models/post.rb | 邮政模型 |
测试/单位/post_test.rb | 职位模型的单元测试工具 |
测试/灯具/posts.yml | 用于测试的示例帖子 |
config / routes.rb | 编辑以包括帖子的路由信息 |
app/controllers/posts_controller.rb | 职位控制器 |
app / views / posts / index.html.erb | 显示所有帖子索引的视图 |
app / views / posts / edit.html.erb | 编辑现有帖子的视图 |
app / views / posts / show.html.erb | 显示单个帖子的视图 |
app / views / posts / new.html.erb | 创建新帖子的视图 |
app / views / posts / _form.html.erb | 部分控制编辑和新视图中使用的表单的整体外观 |
测试/功能/ post_controller_test.rb | 职位控制器功能测试线束 |
app / helpers / posts_helper.rb | 帖子视图中使用的辅助功能 |
test/unit/helpers/posts_helper_test.rb | 帖子助手的单元测试工具 |
app / assets / javascripts / posts.js.coffee | 邮政控制器的咖啡脚本 |
应用程序/资产/样式表/posts.css.scss | 后期控制器的级联样式表 |
应用/资产/样式表/scaffolds.css.scss | 级联样式表以使支架视图看起来更好 |
许多经验丰富的开发人员避免使用脚手架, 而更喜欢从头开始编写全部或大部分源代码。因为它的自动生成的代码可能不适合你的应用程序。
脚手架示例
让我们用脚手架生成以下示例。
步骤1创建一个应用程序
rails new example
步骤2在示例应用程序中, 创建MVC组件。
cd example
rails generate scaffold post title:string body:text
rails generate scaffold comment post_id:integer body:text
从上面的代码中, 首先移至应用程序目录。
步骤3创建数据库表注释和post_id。
rake db:migrate
步骤4使用rake命令运行迁移。
rake routes
步骤5启动Web服务器
rails server
输出
在浏览器中运行http:// localhost:3000 / posts。
转到新帖子
单击创建。
单击编辑。
单击更新。
下载
下载此示例