上一節: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/zh-hant/