文档章节

ruby学习(一)

苏叶晚晚
 苏叶晚晚
发布于 2013/09/29 08:58
字数 735
阅读 40
收藏 0

新建rails项目

$ rails new first_app 

简单介绍 Rails 默认文件结构

  • app/ 程序的核心文件,包含模型、视图、控制器和帮助方法
  • app/assets 程序的资源文件,如 CSS、JavaScript 和图片
  • bin/ 可执行文件
  • config/ 程序的设置
  • db/ 数据库文件
  • doc/ 程序的文档
  • lib/ 代码库文件
  • lib/assets 代码库包含的资源文件,如 CSS、JavaScript 和 图片
  • log/ 程序的日志文件
  • public/ 公共(例如浏览器)可访问的数据,如出错页面
  • script/rails 生成代码、打开终端会话或开启本地服务器的脚本
  • test/ 程序的测试文件(在 3.1.2 节 中换用 spec/)
  • tmp/ 临时文件
  • vendor/ 第三方代码,如插件和 gem
  • vendor/assets 第三方代码包含的资源文件,如 CSS、JavaScript 和图片
  • README.rdoc 程序简介
  • Rakefile rake 命令包含的任务
  • Gemfile 该程序所需的 gem
  • Gemfile.lock 一个 gem 的列表,确保本程序的复制版使用相同版本的 gem
  • config.ru Rack 中间件的配置文件
  • .gitignore git 忽略的文件类型

运行rails项目

创建完一个新的 Rails 程序后,你可以使用 Bundler 来安装和包含该程序所需的 gem。rails 命令会自动执行 Bundler(通过 bundle install)

$ bundle update
$ bundle install
$ rails server
  • gem 'uglifier', '>=1.3.0' 会安装 1.3.0 或以上的最新版 uglifier gem
  • gem 'coffee-rails', '~> 4.0.0' 只会安装高于 4.0.0 版的 coffee-rails
  • gem 'sass-rails', '4.0.0' 安装指定版本4.0.0的sass-rails文件

rails的脚手架功能 scaffold

  1. 新建User资源 将 scaffold 传递给 rails generate 就可以使用 Rails 的脚手架功能了。传给 scaffold 的参数是资源名的单数形式(本例中就是 User),后面可以再跟着指定数据模型的字段(注意没必要指定 id,Rails 会自动创建并将其设为表的主键(primary key))

     rails generate scaffold User name:string email:string
    
  2. 接下来我们要用 Rake(ruby的make)来迁移(migrate)数据库:

     bundle exec rake db:migrate
    
  3. 然后我们可以使用 rails s(rails server 的缩略形式)来启动本地服务器

  4. Users 资源中页面和 URL 的对应关系

<table> <tr> <td>URL</td> <td>&#21160;&#20316;&#65288;Action&#65289;</td> <td>&#30446;&#30340;</td> </tr> <tr> <td>/users</td> <td>index</td> <td>&#26174;&#31034;&#25152;&#26377;&#29992;&#25143;&#30340;&#39029;&#38754;</td> </tr> <tr> <td>/users/1</td> <td>show</td> <td>&#26174;&#31034; ID &#20026; 1 &#30340;&#29992;&#25143;&#30340;&#39029;&#38754;</td> </tr> <tr> <td>/users/new</td> <td>new</td> <td>&#21019;&#24314;&#26032;&#29992;&#25143;&#30340;&#39029;&#38754;</td> </tr> <tr> <td>/users/1/edit</td> <td>edit</td> <td>&#32534;&#36753; ID &#20026; 1 &#30340;&#29992;&#25143;&#30340;&#39029;&#38754;</td> </tr> <tr> <td> </td> </tr> </table>

rails程序的运行逻辑

  • 浏览器向 /users 发起一个请求;
  • Rails 的路由(config/routes.rb)将 /user 分配到 Users 控制器的 index 动作;
  • index 动作向 User 模型获取所有的用户(User.all);
  • User 模型从数据库中将所有的用户读取出来;
  • User 模型将所有的用户返回给控制器;
  • 控制器将获得的所有用户数据赋予 @users 变量,然后传递给 index 的视图;
  • 视图使用内嵌 Ruby 代码的模板渲染成 HTML;
  • 控制器将生成的 HTML 发送回浏览器。

© 著作权归作者所有

苏叶晚晚
粉丝 75
博文 76
码字总数 35972
作品 0
徐汇
程序员
私信 提问
「诱人的Ruby」入门篇调查报告总结

「诱人的Ruby」是我录制的一套Ruby学习课程,一共分成了「入门」 - 「基础提高」 - 「进阶」 - 「高级」四大篇章。 去年(2013)在入门篇课时完结之后,我发起一个调查报告,一共有97人参与调...

blackanger
2018/06/28
0
0
最适合DevOps开发的五种编程语言

  【IT168 评论】随着企业基础设施的改变和发展,各岗位所需的具体技术技能也会有所改变。最近,DevOps可谓是风头正劲,所以今天我们就为大家推荐五种和DevOps最速配的编程语言,并附上笔者...

it168网站
2017/04/17
0
0
盘点:12种从头开始免费学习编程的方法

不会编程算不算是文盲?虽然有人认为这样有点说过头,但也不可否认如今编程确实显得越来越重要。比如作为设计师,懂一些编程可能会帮你更好地理解自己工作内容;而如果你想从头开始创业,技术...

二胡
2012/02/05
8.1K
7
linux学习之sed

sed是一个很好的文件处理工具,本身是一个管道命令,主要是以行为单位进行处理,可以将数据行进行替换、删除、新增、选取等特定工作,下面先了解一下sed的用法 sed命令行格式为: sed [-nefr...

小兵成长记
2016/10/24
3
0
作为初学者,php,python和ruby应学哪个?

  【IT168 评论】对于web开发初学者来说,最大的问题就是学习哪种编程语言更适合未来的职业发展并且更有前景。你要考虑都有哪些编程语言,各自的优缺点是什么、每种编程语言的学习周期有多...

it168网站
2017/03/01
0
0

没有更多内容

加载失败,请刷新页面

加载更多

Springboot Redis详解

1. 在springboot中使用redis,只需要依赖spring-boot-starter-data-redis,然后在配置文件中配置spring.redis开头的一些配置,根据Redis的架构选择单节点,主从或集群模式,详情如下(2.0.0....

sunranhou
22分钟前
3
0
Android动画不执行

startAnimation 和 setAnimation 有一些区别 1、 imvIcon.startAnimation(anim);2、 imvIcon.setAnimation(anim); anim.startNow();...

安卓工程师王恒
34分钟前
2
0
一套基于SpringBoot+Vue+Shiro 前后端分离 开发的代码生成器

一、前言 最近花了一个月时间完成了一套基于Spring Boot+Vue+Shiro前后端分离的代码生成器,目前项目代码已基本完成 止步传统CRUD,进阶代码优化: 该项目可根据数据库字段动态生成 controll...

郑清
今天
8
0
javascript-十六进制随机颜色

<script> // 编写一个函数,获得一个十六进制的随机颜色的字符串(如#20CD4F) // function randomColor(){ // var r = random(0,255).toString(16); // var g = random(0,255).toString(16......

ACKo
今天
3
0
springBoot +mybatis 出现sql 语句在数据库可以查询到,但是赋值到实体类上就没有的情况?

1.不要老是反复查看自己是否写错了,为啥有的能出来有的出不来? 可以查看配置文件中是否配置全: 如果在application.yml 文件中是如下配置: mybatis: mapper-locations: classpath:mapp...

kuchawyz
今天
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部