上一节:Ruby on Rails实战–创建一个网上商店E用户管理模块
本节是depot电子商店的项目的最后一节。将完成生成XML Feed,并介绍如何生成项目文档。
生成通过商品ID反查定购用户信息的XML Feed.
orders的id和关联line_items表中的order_id,而line_items表中的product_id和products表中的id相关联, 通过orders可以查products的id,现在建立反向关联.
在depot/app/models/product.rb文件加入:
has_many :orders, :through => :line_items
使product通过line_item查order信息
新建一个info controller:
depot> ruby script/generate controller info
controllers/info_controller.rb文件内容为:
class InfoController < ApplicationController
def who_bought
@product = Product.find(params[:id])
@orders = @product.orders
respond_to do |accepts| #下面代码根据request的形式选择发送html还是xml格式内容
accepts.html
accepts.xml
end
end
end
加入html形式内容页面:depot/app/views/info/who_bought.rhtml,内容如下:
<h3>People Who Bought <%= @product.title %></h3>
<ul>
<% for order in @orders -%>
<li> <%= mail_to order.email, order.name %> </li>
<% end -%>
</ul>
加入xml形式内容页面:depot/app/views/info/who_bought.rxml,内容如下:
xml.order_list(:for_product => @product.title) do
for o in @orders
xml.order do
xml.name(o.name)
xml.email(o.email)
end
end
end
现在通过http://localhost:3000/info/who_bought/1 地址就可以查出商品1(ID)的定购者信息了.
生成开发文档RDoc
项目中的doc/README_FOR_APP文件可以加入项目相关的说明信息.
使用depot> rake doc:app 可以生成项目的开发文档文件. 程序对项目中所有文件,classes和methods进行分析, 列出相关信息. 文件为html格式.
至此depot项目完成. 一个用Ruby on Rails续建的简单的网上商店完成了!
转载请注明: 转自船长日志, 本文链接地址: http://www.cslog.cn/Content/ruby_on_rails_eshop_done/