首先用ruby script/generate migration create_table_friends创建一个migration文件,
写入以下代码:
- 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代码:
- 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.
- 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
friend.rb
- class Friend < FriendsResource
- self .site += '/friends/list'
- end
通过ruby script/generate controller getrest生成一个控制器,其中写一个index函数,实现如下:
- def index
- @f =Friend.find( :all )
- end
建立相应的template文件,通过iterate我们就就可以把这个列表中所有的friend的相应属性输出。
注:论坛里好多同学说中文问题,其实只要做以下几件事,就可以很好的解决中文问题:
- 在创建数据库的时候,设定其编码为:utf-general-ci
- 在datatbase.yaml中设定:encoding: utf8
- 最后一点就是把编辑器的编码改为utf-8就可以了(我用的是eclipse,可以实现这个功能的)
我希望坛子上的高手来实现用客户端删除、更改和创建friend。