快速业务通道

Ruby on rails开发从头来(windows)(十四)-送货处理 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-14

Ruby on rails开发从头来(windows)(十四)-送货处理

时间:2011-12-02 博客园 Cure

在上次的内容里,我们完成了订单的编写。这次我们模拟一个简单的送货页面,给这个购物车的管理员用。

1.首先,我们修改order表,给他添加一个字段shipped_at:

create table orders (
id int not null auto_increment,
name varchar(100) not null,
email varchar(255) not null,
address text not null,
pay_type char(10) not null,
shipped_at datetime null,
primary key (id)
);

2.添加一个Action,在admin_controller.rb文件中添加一个方法:

def ship
  @pending_orders = Order.pending_shipping
end

3.给order的model实现pending_shipping方法:

def self.pending_shipping
  find(:all, :conditions => "shipped_at is null")
end

4.还是老道路,M有了,C有了,还差个V,现在来补上:

在Views的admin目录下,创建一个ship.rhtml文件,内容如下:

<h1>Orders To Be Shipped</h1>
<%= form_tag(:action => "ship") %>
<table cellpadding="5" cellspacing="0">
<%= render(:partial => "order_line", :collection => @pending_orders) %>
</table>
<br />
<input type="submit" value=" SHIP CHECKED ITEMS " />
<%= end_form_tag %>
<br>

注意兰色的一行,参数partial指明了一个局部的模板,collection参数指定了使用的数据的集合,这里是pending_orders方法取出的order。如果不明白(其实我自己也不明白J),先不着急,等下看看效果图就好了。

Ruby on rails开发从头来(windows)(十四)-送货处理(2)

时间:2011-12-02 博客园 Cure

5.下面,我们还要再进行一步,实现上面调用的order_line这个页面,还是在Views的admin目录下,创建一个_order_line.rhtml文件,作为约定,文件名使用“_”作为前缀。文件内容如下:

<tr valign="top">
    <td class="olnamebox">
           <div class="olname"><%= h(order_line.name) %></div>
           <div class="oladdress"><%= h(order_line.address) %></div>
    </td>
    <td class="olitembox">
           <% order_line.line_items.each do |li| %>
           <div class="olitem">
                  <span class="olitemqty"><%= li.quantity %></span>
                  <span class="olitemtitle"><%= li.product.title %></span>
           </div>
           <% end %>
    </td>
    <td>
           <%= check_box("to_be_shipped", order_line.id, {}, "yes", "no") %>
    </td>
</tr>

6.看看效果图:

Ruby on rails开发从头来(windows)(十四)-送货处理 - 编程入门网

7.当然,上面的效果还不是很好看,我们要美化下,修改Views的layouts目录下的admin.rhtml文件:

<html>
    <head>
           <title>ADMINISTER Pragprog Books Online Store</title>
           <%= stylesheet_link_tag "scaffold", "depot", "admin", :medi

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号