在上次的内容里,我们完成了订单的编写。这次我们模拟一个简单的送货页面,给这个购物车的管理员用。
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),先不着急,等下看看效果图就好了。