- 浏览: 2076790 次
- 性别:
- 来自: NYC
文章分类
- 全部博客 (628)
- Linux (53)
- RubyOnRails (294)
- HTML (8)
- 手册指南 (5)
- Mysql (14)
- PHP (3)
- Rails 汇总 (13)
- 读书 (22)
- plugin 插件介绍与应用 (12)
- Flex (2)
- Ruby技巧 (7)
- Gem包介绍 (1)
- javascript Jquery ext prototype (21)
- IT生活 (6)
- 小工具 (4)
- PHP 部署 drupal (1)
- javascript Jquery sort plugin 插件 (2)
- iphone siri ios (1)
- Ruby On Rails (106)
- 编程概念 (1)
- Unit Test (4)
- Ruby 1.9 (24)
- rake (1)
- Postgresql (6)
- ruby (5)
- respond_to? (1)
- method_missing (1)
- git (8)
- Rspec (1)
- ios (1)
- jquery (1)
- Sinatra (1)
最新评论
-
dadadada2x:
user模型里加上 protected def email ...
流行的权限管理 gem devise的定制 -
Sev7en_jun:
shrekting 写道var pattern = /^(0| ...
强悍的ip格式 正则表达式验证 -
jiasanshou:
好文章!!!
RPM包rpmbuild SPEC文件深度说明 -
寻得乐中乐:
link_to其实就是个a标签,使用css控制,添加一个参数: ...
Rails在link_to中加参数 -
aiafei0001:
完全看不懂,不知所然.能表达清楚一点?
"$ is not defined" 的问题怎么办
如果你要做rails restful的工作,建议先看看管网的
http://api.rubyonrails.org/classes/ActionController/Resources.html
1. 安裝 Ruby on Rails 基本環境 (windows)
- 下載安裝 1-Click Rails Installer
- 下載安裝 E-TextEditor ,安裝過程會出現錯誤,按下略過即可。啟動時會問你使否安裝 cygwin,請點手動不要安裝。
- 啟動 -> cmd -> cd \
- rails my_event
- cd my_event
- ruby script/server
- 開啟瀏覽器 http://localhost:3000 ,將會看到 Rails 的預設首頁
2. 建立一個 non-RESTful 的 Hello World! Rails Project
- ruby script/generate controller welcome
- 編輯 /app/controllers/welcome_controller.rb,加入
def say render :text => "Hello world!" end
- 瀏覽 http://localhost:3000/welcome/say,將看到 Hello world!
- 編輯 /app/controllers/welcome_controller.rb,加入
def index end
- 新增 /app/views/welcome/index.html.erb,內容是
<p>Hola!</p> <p><%= link_to 'hello world', :controller => 'welcome', :action => 'say' %><p>
- 修改 /config/route.rb 加上 map.root :controller => "welcome"
- 刪除 /public/index.html
- 瀏覽 http://localhost:3000/welcome/say,將看到 Hola! 及 hello 超連結。
3. 實做一個 non-RESTful 的 CRUD
- ruby script/generate model event name:string description:text
- rake db:migrate
- ruby script/generate controller events
- 編輯 /app/controllers/events_controller.rb 加入
def index @events = Event.find(:all) end def show @event = Event.find(params[:id]) end def new @event = Event.new end def create @event = Event.new(params[:event]) @event.save redirect_to :action => :index end def edit @event = Event.find(params[:id]) end def update @event = Event.find(params[:id]) @event.update_attributes(params[:event]) redirect_to :action => :show, :id => @event end def destroy @event = Event.find(params[:id]) @event.destroy redirect_to :action => :index end
- 新增 /app/views/events/index.html.erb,內容如下:
<ul> <% @events.each do |event| %> <li> <%= link_to event.name, :controller => 'events', :action => 'show', :id => event %> <%= link_to 'edit', :controller => 'events', :action => 'edit', :id => event %> <%= link_to 'delete', :controller => 'events', :action => 'destroy', :id => event %> </li> <% end -%> </ul> <%= link_to 'new event', :controller => 'events', :action => 'new' %>
- 新增 /app/views/events/show.html.erb,內容如下:
<%=h @event.name %> <%=h @event.description %> <p><%= link_to 'back to index', :controller => 'events', :action => 'index' %></p>
- 新增 /app/views/events/new.html.erb,內容如下:
<% form_for @event, :url => { :controller => 'events', :action => 'create' } do |f| %> <%= f.label :name, "Name" %> <%= f.text_field :name %> <%= f.label :description, "Description" %> <%= f.text_area :description %> <%= f.submit "Create" %> <% end %>
- 新增 /app/views/events/edit.html.erb,內容如下:
<% form_for @event, :url => { :controller => 'events', :action => 'update', :id => @event } do |f| %> <%= f.label :name, "Name" %> <%= f.text_field :name %> <%= f.label :description, "Description" %> <%= f.text_area :description %> <%= f.submit "Update" %> <% end %>
- 連往 http://localhost:3000/events
4. 修改成一個 RESTful 版本的 CRUD
map.resources :events
-
<% @events.each do |event| %>
<li>
<%= link_to event.name, event_path(event) %>
<%= link_to 'edit', edit_event_path(event) %>
<%= link_to 'delete', event_path(event), :method => :delete %>
<% end -%>
</ul>
<%= link_to 'new event', new_event_path %>
<%=h @event.name %> <%=h @event.description %> <p><%= link_to 'back to index', events_path %>
<% form_for @event, :url => events_path do |f| %> <%= f.label :name, "Name" %> <%= f.text_field :name %> <%= f.label :description, "Description" %> <%= f.text_area :description %> <%= f.submit "Create" %> <% end %>
<% form_for @event, :url => event_path(@event), :html => { :method => :put } do |f| %> <%= f.label :name, "Name" %> <%= f.text_field :name %> <%= f.label :description, "Description" %> <%= f.text_area :description %> <%= f.submit "Update" %> <% end %>
5. 使用 RESTful 版的 Scaffold
- ruby script/generate scaffold person name:string bio:text birthday:datetime
- rake db:migrate
- Ctrl+C 關閉 Server,重新啟動 script/server
- 瀏覽 http://localhost:3000/people 並操作 CRUD
6. Ajax 實做練習1 (傳回HTML更新)
- 新增 /app/views/layout/application.html.erb,內容如下
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> <head> <meta http-equiv="content-type" content="text/html;charset=UTF-8" /> <%= javascript_include_tag :defaults %> </head> <body> <%= yield %> </body> </html>
- 編輯 /app/views/welcome/index.html.erb,加入
<p><%= link_to_remote 'Ajax hello', :url => { :controller => 'welcome', :action => 'say' }, :update => 'foobar' %></p> <div id="foobar"> </div>
- 瀏覽http://localhost:3000
7. Ajax 實做練習2 (使用RJS)
- 編輯 /app/views/events/index.html.erb,在迴圈中間和文件最後加入
<%= link_to_remote 'ajax show', :url => event_path(event), :method => :get %>
<div id="content"> </div>
- 編輯 /app/controllers/events_controller.rb,在 show action 中加入
respond_to do |format| format.html format.js end
- 新增 /app/views/events/_event.html.erb,內容與 show.html.erb 相同
- 新增 /app/views/events/show.js.rjs,內容如下
page.replace_html 'content', :partial =>'event' page.visual_effect :highlight, 'content'
- 瀏覽http://localhost:3000/events
8. 使用者註冊登入 Generator 產生器
- 下載 http://github.com/technoweenie/restful-authentication 到 /vendor/plugins/,命名為 restful-authentication
- 執行 ruby script/generate authenticated user sessions --old-passwords
- rake db:migrate
- Ctrl+C 關閉 Server,重新啟動 script/server
- 連往 http://localhost:3000/users/new 註冊頁面
- 編輯 /app/controllers/application.rb,加入
include AuthenticatedSystem
- 編輯 /app/views/layout/application.html.erb,加入
<%= render :partial => "users/user_bar" %>
- 編輯 /app/controllers/events_controller.rb,加入
before_filter :login_required
- 點選 Log out,再連往 http://localhost:3000/events/ 將導到登入頁面
9. 分頁 Plugin
- 下載 http://github.com/mislav/will_paginate 到 /vendor/plugins/,命名為 will_paginate
- 修改 /app/controllers/events_controller.rb 的 index action 如下
def index @events = Event.paginate(:page => params[:page], :per_page => 3, :order => "id DESC") end
- 編輯 /app/views/events/index.html.erb,加入
<%= will_paginate @events %>
- 連往 http://localhost:3000/events/
发表评论
-
Destroying a Postgres DB on Heroku
2013-04-24 10:58 937heroku pg:reset DATABASE -
VIM ctags setup ack
2012-04-17 22:13 3259reference ctags --extra=+f --e ... -
alias_method_chain方法在3.1以后的替代使用方式
2012-02-04 02:14 3296alias_method_chain() 是rails里的一个 ... -
一些快速解决的问题
2012-01-19 12:35 1473问题如下: 引用Could not open library ... -
API service 安全问题
2011-12-04 08:47 1386这是一个长期关注的课题 rest api Service的 ... -
Module方法调用好不好
2011-11-20 01:58 1350以前说,用module给class加singleton方法,和 ... -
一个ajax和rails交互的例子
2011-11-19 01:53 1910首先,这里用了一个,query信息解析的包,如下 https: ... -
Rails 返回hash给javascript
2011-11-19 01:43 2278这是一个特别的,不太正统的需求, 因为,大部分时候,ajax的 ... -
关于Rubymine
2011-11-18 23:21 2269开个帖子收集有关使用上的问题 前一段时间,看到半价就买了。想 ... -
ruby中和javascript中,动态方法的创建
2011-11-18 21:01 1241class Klass def hello(*args) ... -
textmate快捷键 汇总
2011-11-16 07:20 8148TextMate 列编辑模式 按住 Alt 键,用鼠标选择要 ... -
Ruby面试系列六,面试继续面试
2011-11-15 05:55 2027刚才受到打击了,充分报漏了自己基础不扎实,不肯向虎炮等兄弟学习 ... -
说说sharding
2011-11-13 00:53 1496这个东西一面试就有人 ... -
rails面试碎碎念
2011-11-12 23:51 1949面试继续面试 又有问ru ... -
最通常的git push reject 和non-fast forward是因为
2011-11-12 23:29 17221git push To git@github.com:use ... -
Rails 自身的many to many关系 self has_many
2011-11-12 01:43 2739简单点的 #注意外键在person上people: id ... -
Rails 3下的 in place editor edit in place
2011-11-12 01:20 949第一个版本 http://code.google.com/p ... -
Heroku 的诡异问题集合
2011-11-11 07:22 1698开个Post记录,在用heroku过程中的一些诡异问题和要注意 ... -
SCSS 和 SASS 和 HAML 和CoffeeScript
2011-11-07 07:52 12963Asset Pipeline 提供了内建 ... -
Invalid gemspec because of the date format in specification
2011-11-07 02:14 2124又是这个date format的错误。 上次出错忘了,记录下 ...
相关推荐
### 一个简单的RESTful例子及深入讲解 #### REST简介与核心概念 REST(Representational State Transfer,表象性状态转移)是一种软件架构风格,尤其适用于Web服务的设计。它利用现有的互联网标准和技术,如HTTP、...
在本文中,我们将深入探讨RESTful架构风格的两个实际应用示例,它们分别是基于Apache CXF实现的`cxf_demo`和基于Spring框架的`Spring_Restful_Demo`。 首先,让我们了解RESTful的基本原则: 1. **资源(Resources...
这个例子是关于如何在Spring 3.0框架中实现RESTful服务的,Spring是Java开发中最常用的一个开源框架,特别适合构建企业级的Web应用。 首先,理解RESTful的核心概念: 1. 资源(Resources):在Web服务中,资源是...
本文将深入探讨Spring框架如何实现RESTful API,以及这些概念在"springRestful小例子"中的具体应用。 首先,我们要理解什么是RESTful。REST(Representational State Transfer)是一种网络应用程序的设计风格和开发...
restful web,restful web,restful web
在这个例子中,我们定义了一个名为`UserController`的类,它处理与用户相关的REST请求。每个方法都对应一个HTTP动词和一个URL路径。`@RestController`注解表明这是一个处理HTTP请求的控制器,`@RequestMapping("/...
在IT行业中,RESTful是一种广泛...通过这两个例子,开发者可以深入理解RESTful设计原则,熟悉Spring MVC的使用,以及掌握构建高效、健壮的Web服务的技巧。在实际开发中,这样的技能对于构建现代、可扩展的API至关重要。
【CXF Restful服务简单例子】\n\n在IT行业中,Apache CXF是一个广泛使用的开源框架,它允许开发人员创建和消费Web服务。RESTful(Representational State Transfer)是一种网络应用程序的设计风格和开发方式,基于...
接下来是"restful例子"。REST(Representational State Transfer)是一种网络应用程序的设计风格和开发方式,基于HTTP协议,用于分布式系统中的数据交互。SpringBoot提供了强大的支持来构建RESTful API。你可以使用`...
在“spring boot restful服务小例子”中,我们重点讨论的是如何使用 Spring Boot 构建 RESTful Web 服务。REST(Representational State Transfer)是一种网络应用程序的设计风格和开发方式,基于 HTTP 协议,可以...
实例主要做移动开发API实用,基于RESTful ,后期实用angularJS 解决了跨域问题,解决了PUT、DELETE的405报错问题,, 2天的时间啊,,被网上各种方法方式各种扯、拽 ,搞得乱了脑子了,静下来写写 ok了
在开发RESTful接口时,我们需要遵循一定的设计规范来确保接口的一致性、可维护性和易用性。RESTful API(Representational State Transfer,也称为RESTful web服务)是一种提供互联网计算机系统间互操作性的方法。...
RESTful是一种Web服务设计...通过这个例子,我们可以学习如何在实际开发中使用RESTful API和XML进行数据交换,以及如何利用CXF这样的框架简化这一过程。理解这些概念和技术对于构建可扩展、可维护的Web服务至关重要。
**RestFul API 知识点详解** REST(Representational State Transfer)是一种网络应用程序的设计风格和开发方式,基于HTTP协议,以数据为中心,强调资源的状态转移。RESTful API是遵循REST原则设计的Web服务接口,...
在这个例子中,我们将探讨如何开发一个使用JSON(JavaScript Object Notation)作为数据交换格式的RESTful Web Service。JSON是一种轻量级的数据交换格式,易于人阅读和编写,同时也易于机器解析和生成。它是Web服务...
在IT行业中,RESTful风格的API设计已经成为现代Web服务的标准,它强调资源的表述状态转移。本实例将探讨如何在Spring Boot框架下实现RESTful风格的请求,并利用JWT(JSON Web Token)进行权限验证,同时结合自定义...
"Java调用Restful API接口的方式" Java调用Restful API接口是Java开发中非常重要的一部分,了解Java调用Restful API接口的方式可以帮助开发者更好地理解和使用相关技术。本文将详细介绍Java调用Restful API接口的...
Slim is a PHP micro framework that helps you quickly write simple yet powerful web applications and APIs. FEATURES Powerful router ...Route parameters with wildcards and conditions Route redirect, halt, ...
标题"Spring整合Restful详解+例子+建表语句"暗示了我们将探讨如何将Spring框架与RESTful服务相结合,通过实际的项目例子来深入理解这一过程,并提供相关的数据库建表语句。 首先,Spring MVC是Spring框架的一部分,...
在这个例子中,客户端向服务器发送GET请求,读取响应内容并打印出来。 在解压的文件列表"RESTfulWS"中,可能包含了实现上述RESTful接口和服务端的配置文件,以及可能的测试用例或样例数据。这些内容可以帮助开发者...