2007-01-23
一个简单的RST实例
关键字: rails
首先用ruby script/generate migration create_table_friends创建一个migration文件,
写入以下代码:
运行: rake migrate
生成相应的数据表friends
利用ruby script/generate scaffold friends生成一个支架,可以通过:http://127.0.0.13000添入几条测试数据。
修改控制器中的list代码:
这个时候我们可以在浏览器中输入:http://127.0.0.1:3000/friends/list/index.xml 你就可以查看到相应的数据信息,它是以xml形式显示的。
这样我们就完成了简单的一个相当于服务器端的功能,接下来我们就要来实现我们的客户端,我们可以直接通过ruby代码来调用,也可以再建一个rails应用来调用。我们分别给出:
1.
运行以后输出的结果是:
我们可以看到中文字条无法显示。
2.
在model中建立两个rb文件:
friends_resource.rb
friend.rb
通过ruby script/generate controller getrest生成一个控制器,其中写一个index函数,实现如下:
建立相应的template文件,通过iterate我们就就可以把这个列表中所有的friend的相应属性输出。
注:论坛里好多同学说中文问题,其实只要做以下几件事,就可以很好的解决中文问题:
写入以下代码:
- class CreateTableFriends < ActiveRecord::Migration
- def self.up
- create_table :friends do |t|
- t.column :first_name, :string
- t.column :last_name, :string
- t.column :phone, :string, :limit=>12
- t.column :email, :string
- end
- end
- def self.down
- drop_table :friends
- end
- end
运行: rake migrate
生成相应的数据表friends
利用ruby script/generate scaffold friends生成一个支架,可以通过:http://127.0.0.13000添入几条测试数据。
修改控制器中的list代码:
ruby 代码
- def list
- #@friends_pages, @friends = paginate :friends, :per_page => 10
- @friends=Friend.find(:all)
- respond_to do |wants|
- wants.html
- wants.js
- wants.xml{render :xml=>@friends.to_xml}
- end
- end
这个时候我们可以在浏览器中输入:http://127.0.0.1:3000/friends/list/index.xml 你就可以查看到相应的数据信息,它是以xml形式显示的。
这样我们就完成了简单的一个相当于服务器端的功能,接下来我们就要来实现我们的客户端,我们可以直接通过ruby代码来调用,也可以再建一个rails应用来调用。我们分别给出:
1.
ruby 代码
- require 'net/http'
- Net::HTTP.start('localhost', 3000) do |http|
- response = http.get('/friends/list', 'Accept' => 'text/xml')
- #Do something with the response.
- puts "Code: #{response.code}"
- puts "Message: #{response.message}"
- puts "Body:\n #{response.body}"
- end
运行以后输出的结果是:
- Code: 200
- Message: OK
- Body:
- <?xml version="1.0" encoding="UTF-8"?>
- <friends>
- <friend>
- <email>mloki@124.com</email>
- <first-name>马</first-name>
- <id type="integer">3</id>
- <last-name>理军</last-name>
- <phone>0511-8791837</phone>
- </friend>
- </friends>
我们可以看到中文字条无法显示。
2.
在model中建立两个rb文件:
friends_resource.rb
- class FriendsResource < ActiveResource::Base
- self.site = 'http://localhost:3000'
- end
ruby 代码
- class Friend < FriendsResource
- self.site += '/friends/list'
- end
通过ruby script/generate controller getrest生成一个控制器,其中写一个index函数,实现如下:
ruby 代码
- def index
- @f=Friend.find(:all)
- end
建立相应的template文件,通过iterate我们就就可以把这个列表中所有的friend的相应属性输出。
注:论坛里好多同学说中文问题,其实只要做以下几件事,就可以很好的解决中文问题:
- 在创建数据库的时候,设定其编码为:utf-general-ci
- 在datatbase.yaml中设定:encoding: utf8
- 最后一点就是把编辑器的编码改为utf-8就可以了(我用的是eclipse,可以实现这个功能的)
- 20:57
- 浏览 (3030)
- 论坛浏览 (3390)
- 评论 (4)
- 分类: RORs
- 相关推荐
评论
proper 写道
使用 Rest 的方式的话,是不是这段
http://127.0.0.1:3000/friends/list/index.xml
不应该用动词?
比如可以写成:
http://127.0.0.1:3000/friends/
就是那到了全部的friends了
同时还得用get这种method才行。如果是post的话就是新建一个了。http://127.0.0.1:3000/friends/list/index.xml
不应该用动词?
比如可以写成:
http://127.0.0.1:3000/friends/
就是那到了全部的friends了
使用 Rest 的方式的话,是不是这段
http://127.0.0.1:3000/friends/list/index.xml
不应该用动词?
比如可以写成:
http://127.0.0.1:3000/friends/
就是那到了全部的friends了
http://127.0.0.1:3000/friends/list/index.xml
不应该用动词?
比如可以写成:
http://127.0.0.1:3000/friends/
就是那到了全部的friends了
yooyer 写道
谢谢,你的文章!
我看了http://www.ibm.com/developerworks/cn/java/j-cb08016/index.html
上面有用 Java 代码调用服务的代码,如果用c#,该如何调用web服务啊?
我看了http://www.ibm.com/developerworks/cn/java/j-cb08016/index.html
上面有用 Java 代码调用服务的代码,如果用c#,该如何调用web服务啊?
我不会C#的,真的对不起.你可以参照一下那段java代码,我想应该也会用到C#中的网络库的.模仿试一下.
谢谢,你的文章!
我看了http://www.ibm.com/developerworks/cn/java/j-cb08016/index.html
上面有用 Java 代码调用服务的代码,如果用c#,该如何调用web服务啊?
我看了http://www.ibm.com/developerworks/cn/java/j-cb08016/index.html
上面有用 Java 代码调用服务的代码,如果用c#,该如何调用web服务啊?
发表评论
该博客是同时发布到论坛的,无法评论在论坛已被锁定的帖子
- 浏览: 37198 次
- 性别:


- 详细资料
搜索本博客
最近加入圈子
最新评论
-
研究生监考
SVN还是还能有用的啊,你还没有进行程序开发的版本控制么
-- by kayo -
一个简单的RST实例
proper 写道使用 Rest 的方式的话,是不是这段http://127.0 ...
-- by 李超群 -
一个简单的RST实例
使用 Rest 的方式的话,是不是这段http://127.0.0.1:3000 ...
-- by proper -
Editplus编辑Rubby
不懂ruby,不过你可以去找找ruby.acp,或自己创建一个,自动完成代码,格 ...
-- by winhkey -
eclipse安装插件(以安装 ...
放在eclipse目录中的话,用相对路径就可以了 path=language ...
-- by winhkey






评论排行榜