快速业务通道

跨越边界: REST on Rails - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-16
序的环境下查看它的实际作用。

请用自己选择的数据库管理器创建一个叫做 service_development 的数据库。接下来,用以下命令创 建 Rails 项目和模型:

> rails service > script/generate model Person

在生成模型之后,就有了一个叫做 db/migrate/001_create_people.rb 的迁移。请把这个迁移编辑成 像清单 1 一样:

清单 1. people 表的迁移

class CreatePeople < ActiveRecord::Migration   def self.up    create_table :people do |t|     t.column :first_name, :string, :limit => 40     t.column :last_name, :string, :limit => 40     t.column :email, :string, :limit => 40     t.column :phone, :string, :limit => 15    end   end   def self.down    drop_table :people   end end

跨越边界: REST on Rails(2)

时间:2011-07-25 IBM Bruce Tate

把 config/database.yml 中的数据库配置修改成与自己的数据库配置匹配,并输入 rake migrate。 最后,输入 script/generate scaffold Person People,为 Person 模型和 People 控制器生成工作台 。现在可以用 script/server 启动服务器了。请把浏览器指向 localhost:3000/people,以看到针对 Person 的经典的 Rails 脚手架。图 1 显示了带有标准 Rails 脚手架的应用程序:

图 1. 简单的 Rails 应用程序

跨越边界: REST on Rails - 编程入门网

在我介绍 Rails 的 Web 服务之前,请查看控制器代码。编辑 app/controllers/people_controller.rb,使之与清单 2 的代码匹配:

清单 2. PeopleController 的控制器代码

class PeopleController < ApplicationController   def index    list    render :action => ''list''   end   # GETs should be safe (see  http://www.w3.org/2001/tag/doc/whenToUseGet.html)   verify :method => :post, :only => [ :destroy, :create, :update ],      :redirect_to => { :action => :list }   def list    @person_pages, @people = paginate :people, :per_page => 10   end   def show    @person = Person.find(params[:id])   end   def new    @person = Person.new   end   def create    @person = Person.new(params[:person])    if @person.save     flash[:notice] = ''Person was successfully created.''     redirect_to :action => ''list''    else     render :action => ''new''    end   end   def edit    @person = Person.find(params[:id])   end   def update    @person = Person.find(params[:id])    if @person.update_attributes(params[:person])     flash[:notice] = ''Person was successfully updated.''     redirect_to :action => ''show'', :id => @person    else     render :action => ''edit''    end   end   def destroy    Person.find(params[:id])。destroy    redirect_to :action => ''list''   end end

跨越边界: REST on Rails(3)

时间:2011-07-25 IBM Bruce Tate

如果跟着做过这个系列以前的 Ruby on Rails 项目,就会知道典型的控制器方法的一般流程是:

用户通过跟随链接或指定 URL,通过 HTTP 发送请求。

Web 服务器根据域的配置把请求转给 Ruby on Rails。

Rails 路由器根据 URL 模式把请求路由给控制器。默认模式是 http://主机名/控制器/动作/参数。

路由器用与动作相同的参数调用控制器上的方法。

动作参数为视图设置实例变量,并呈现视图。

动作方法把实例变量拷贝到视图。

例如,请看 清单 2 中的 show 方

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号