Top Banner
Ruby on Rails 简简 简简简
16

Ruby on Rails 简介

May 16, 2015

Download

Technology

Sam Qiu

Ruby on Rails introduction at dxy
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
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 简介

感谢聆听:)