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續建的簡單的網上商店完成了!

此條目發表在 Ruby on Rails 分類目錄。將固定鏈接加入收藏夾。

發表評論