Ruby on Rails 简介

16
Ruby on Rails 简简 简简简

description

Ruby on Rails introduction at dxy

Transcript of Ruby on Rails 简介

Page 1: Ruby on Rails 简介

Ruby on Rails 简介

邱锦森

Page 2: Ruby on Rails 简介

Ruby on Rails 是什么

由 David Heninemeier Hansson 从 basecamp 中分离出来的MVC 框架。

由 Ruby 写成。

谁是 DHH ?

37signals 合伙人, Rework, Getting Real, Agile Web Development with Rails 作者之一。

Page 3: Ruby on Rails 简介

为什么要用 Rails ,有什么好处?

约定优于配置

插件

强大的路由

ORM, Migrate

快速应付大部分应用场景

3 种运行模式development, test, production

Page 4: Ruby on Rails 简介

" 模仿是最大的恭维 " 

CakePHP(PHP) 

Playframework(JAVA)

 Grails(Groovy)

Page 5: Ruby on Rails 简介

Rails 的设计原则

“ 不要重复自己”( Don't Repeat Yourself )“ 约定优于配置”( Convention Over Configuration )

例如:    rest 请求 CURD 的 action 名

具体的 ruby 类型到 mysql 类型如何映射,字段长度

Page 6: Ruby on Rails 简介
Page 7: Ruby on Rails 简介
Page 8: Ruby on Rails 简介

什么时候适用?

资料库形式,特别,不同于传统 CMS 的应用

性能要求不高要求开发效率高

运行于 *nix, Only POSIX

Page 9: Ruby on Rails 简介

一个新的应用

$rails new smart -J -d mysql$cd smart $bundle install$rake db:migrate$rails server

http://localhost:3000/

Page 10: Ruby on Rails 简介

手脚架 scaffold

$rails g scaffold post title:string content:text$rake db:migrate

生成 Model, View, Controller, Route

Page 11: Ruby on Rails 简介

手脚架多余吗?

不多余,因为“约定优于配置”,所以你也会那样写:)

Page 12: Ruby on Rails 简介

添加一个作者字段

生成 Post 时忘了添加某些字段?

$rails g migration AddAuthorToPost author:string$rake db:migrate

Page 13: Ruby on Rails 简介

Routeresources :posts

Controllerclass PostsController < ApplicationController  def show@post = Post.find(params[:id])   respond_to do |format|format.html     format.xml { render :xml => @post }   end end

View<h1><%= raw(@post.title) %><h1>

Page 14: Ruby on Rails 简介

输入验证?

Model

class  User < ActiveRecord::Base  validates :username, :length => {                                     :within => 1..20,                                     : message => ' 用户名长度必需为 1-20' },                                 :uniqueness => true end

Page 15: Ruby on Rails 简介

一些资源网站 Github -> Google Code    Heroku -> Google App Engine

各种 Ruby cRuby     Ruby Enterprise Edition 1    jRuby -> JAVA    IronRuby

插件   HAML -> HTML    Rspec (BDD) -> Unit Test (TDD)    Devise ( 用户验证 ) 

Page 16: Ruby on Rails 简介

感谢聆听:)