1. 在checkout.rhtml页面上有个CHECKOUT按钮上次还没有给它编写处理代码现在在store_controller中添加save_order思路方法代码如下:
def save_order
@cart = find_cart
@order = Order.(params[:order])
@order.line_items <<@cart.items
@order.save
@cart.empty!
redirect_to_index('Thank you for your order')
render(:action=>'checkout')
end
end
添加了上面代码后再点击CHECKOUT按钮会回到index页面
2. 当然在Checkout页面上通常我们是不会让Name等信息为空下面我们来给页面上添加输入检查这点在前面本系列第 5篇随笔里有提到在这里我们修改order.rb文件添加句代码:
validates_presence_of :name, :email, :address, :pay_type
还要修改checkout.rhtml文件让提示显示出来:
<%= error_messages_for("order") %>
<%= stylesheet_link_tag "scaffold", "depot", :media => "all" %>
这时候如果没有填入项目值就会显示提示如图:
现在我们订单页面已经完成了可以用phpMyAdmin看看数据里order和line_items
表中已经有数据了
另外点击Show my cart链接可以看到下了订单后购物车已经清空了
最新评论