Ruby on Rails实战–创建一个网上商店F收尾工作

上一节: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/

此条目发表在 Ruby on Rails 分类目录。将固定链接加入收藏夹。

发表评论