版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、Ruby1RubyGems2SQLite33需要安装的软件Rails 是使用 Ruby 语言编写的网页程序开发框架,目的是为开发者提供常用组件,简化网页程序的开发。只需编写较少的代码,就能实现其他编程语言或框架难以企及的功能。Rails 是一个用 Ruby 编写的全栈的(full-stack)、开源的 Web 框架,可以使用它来轻松编写实际的应用程序,所需的代码也要比大多数框架花在处理 XML 上的代码少。不要自我重复(不要自我重复(DRY)DRY 是软件开发中的一个原则,“系统中的每个功能都要具有单一、准确、可信的实现。”。不重复表述同一件事,写出的代码才能更易维护,更具扩展性,也更不容易出
2、问题。多约定,少配置多约定,少配置Rails 为网页程序的大多数需求都提供了最好的解决方法,而且默认使用这些约定,不用在长长的配置文件中设置每个细节。$ gem install rails安装 Rails,请使用 RubyGems 提供的 gem install 命令。$ rails new blog这个命令会在文件夹 blog 中新建一个 Rails 程序。$ bundle install 执行 bundle install 命令安装 Gemfile 中列出的 gem。文件文件/文件夹文件夹作用作用app/存放程序的控制器、模型、视图、帮助方法、邮件和静态资源文件。bin/存放运行程序的 r
3、ails 脚本,以及其他用来部署或运行程序的脚本。config/设置程序的路由,数据库等config.ru基于 Rack 服务器的程序设置,用来启动程序。db/存放当前数据库的模式,以及数据库迁移文件。Gemfile, Gemfile.lock这两个文件用来指定程序所需的 gem 依赖件,用于 Bundler gemlib/程序的扩展模块。log/程序的日志文件。public/唯一对外开放的文件夹,存放静态文件和编译后的资源文件。Rakefile保存并加载可在命令行中执行的任务。任务在 Rails 的各组件中定义。如果想添加自己的任务,不要修改这个文件,把任务保存在 lib/tasks 文件夹
4、中。README.rdoc程序的简单说明。你应该修改这个文件,告诉其他人这个程序的作用,如何安装等。test/单元测试,固件等测试用文件tmp/临时文件,例如缓存,PID,会话文件。vendor/存放第三方代码。经常用来放第三方 gem。$ rails serverrails server -b 对所有IP开放上述命令会启动 WEBrick,这是 Ruby 内置的服务器。要查看程序,请打开一个浏览器窗口,访问http:/localhost:3000。Lets GoHello World Demorails generate controller welcome indexcre
5、ate app/controllers/welcome_controller.rb route get welcome/indexinvoke erbcreate app/views/welcomecreate app/views/welcome/index.html.erbinvoke test_unitcreate test/controllers/welcome_controller_test.rbinvoke helpercreate app/helpers/welcome_helper.rbinvoke assetsinvoke coffeecreate app/assets/jav
6、ascripts/welcome.js.coffeeinvoke scsscreate app/assets/stylesheets/welcome.css.scss在这些文件中,最重要的当然是控制器,位于 app/controllers/welcome_controller.rb,以及视图,位于 app/views/welcome/index.html.erb。打开 app/views/welcome/index.html.erb 文件,写入下面这行代码:VCActive ControllerActive View MActive RecordActive RecordActive Reco
7、rd 是 MVC 中的 M(模型),处理数据和业务逻辑。Active Record 负责创建和使用需要持久存入数据库中的数据。Active Record 实现了 Active Record 模式,是一种对象关系映射系统。模型模型/类类数据表数据表/模式模式PostpostsLineItemline_itemsDeerdeersMousemicePersonpeople数据表名:复数,下划线分隔单词(例如 book_clubs)模型类名:单数,每个单词的首字母大写(例如 BookClub)根据字段的作用不同,Active Record 对数据表中的字段命名也做了相应的约定:外键外键 - 使用 s
8、ingularized_table_name_id 形式命名,例如 item_id,order_id。创建模型关联后,Active Record 会查找这个字段;主键主键 - 默认情况下,Active Record 使用整数字段 id 作为表的主键。使用 Active Record 迁移创建数据表时,会自动创建这个字段;其他:created_at - 创建记录时,自动设为当前的时间戳;updated_at - 更新记录时,自动设为当前的时间戳;lock_version - 在模型中添加乐观锁定功能;type - 让模型使用单表继承;创建Active Record 模型Active ViewAc
9、tion View 和 Action Controller 是 Action Pack 的两个主要组件。在 Rails 中,请求由 Action Pack 分两步处理,一步交给控制器(逻辑处理),一步交给视图(渲染视图)。Rails 中的视图也有命名约定。一般情况下,视图名和对应的控制器动作同名,如上所示。例如,posts_controller.rb 控制器中的 index 动作使用 app/views/posts 文件夹中的 index.html.erb 视图文件。我们来看一下使用脚手架创建资源时,Rails 做了哪些事情:Active ControllerAction Controller
10、 是 MVC 中的 C(控制器)。路由决定使用哪个控制器处理请求后,控制器负责解析请求,生成对应的请求。Action Controller 会代为处理大多数底层工作,使用易懂的约定,让整个过程清晰明了。Rails 控制器的命名习惯是,最后一个单词使用复数形式复数形式,但也是有例外,比如 ApplicationController。例如:用 ClientsController,而不是 ClientController;用 SiteAdminsController,而不是 SiteAdminController 或 SitesAdminsController。遵守这一约定便可享用默认的路由生成器(
11、例如 resources 等),无需再指定 :path 或 :controller,URL 和路径的帮助方法也能保持一致性Rails 路由作用Rails 路由能识别 URL,将其分发给控制器的动作进行处理,还能生成路径和 URL,无需直接在视图中硬编码字符串。HTTP 方法方法路径路径控制器控制器#动作动作作用作用GET/photosphotos#index显示所有图片GET/photos/newphotos#new显示新建图片的表单POST/photosphotos#create新建图片GET/photos/:idphotos#show显示指定的图片GET/photos/:id/editphotos#edit显示编辑图片的表单PATCH/PUT/photos/:idphotos#update更新指定的图片DELETE/photos/:idphotos#destroy删除指定的图片CRUD,HTTP 方法和动作方法和动作rake routes常用命令行命令:GithubTwiter36kr快速迭代的特性快速迭代的特性快速市场试水与响应能力快速市场试水与响应能力最拥抱最拥抱web最新标准的框架最新标准的框架招人风险招人风险性能风险性能风险
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年分期付款室内植物购买合同
- 二零二五版智能物流配送服务合同范本6篇
- 2025版煤炭储备基地建设与管理合同3篇
- 2025年度智慧社区住宅买卖二手房购房合同4篇
- 二零二五年度城市商业街区铺面租赁管理协议4篇
- 新时代下的商业技术创新发展报告
- 二零二五年度淋浴房智能节水系统安装与维护合同3篇
- 2025汽车转让合同范本参考
- 二零二五年度韵达快递业务承包合同及战略合作伙伴关系3篇
- 2025年物业管理企业物业费收缴与结算服务合同3篇
- (2024)湖北省公务员考试《行测》真题及答案解析
- 口算天天练一年级下
- 管理模板:某跨境电商企业组织结构及部门职责
- 底架总组装工艺指导书
- 简单临时工劳动合同模板(3篇)
- 聚酯合成反应动力学
- 自动控制原理全套课件
- 上海科技大学,面试
- 《五年级奥数总复习》精编课件
- TS2011-16 带式输送机封闭栈桥图集
- 矿区道路工程施工组织设计方案
评论
0/150
提交评论