4.6.2 订单处理
订单处理的流程是这样的,你先得到一张未处理订单的列表,选择一个订单,查看它的所有信息,随后将它标注为已处理,或者完全移除该订单。同样可以选择从scaffold开始,它能让你的工作更轻松:
接下来打开刚才生成的控制器(app/controllers/orders_controller.rb),移除show、new、create、edit、update和destory方法。新的文件应该是这样的:
这里有很多新的东西。首先,添加了admin布局,这样就可以有个统一的布局。其次,修改了verify方法的参数,只包含remove和handled。list方法被修改为只显示状态为“placed”的订单。因此在从数据库中获得订单时,你不会看到已经处理过的订单。
这里还有3个新方法。在显示或处理某个订单时,Rails将调用handle方法。它会找到被请求的订单,并计算总价。
remove方法将从数据库中移除指定的订单。
handled方法将订单的状态设置为“handled”,然后重定向到列表。打开app/views/orders/ list.rhtml,把它改成这样:
这段代码显示了一个订单列表,包括下订单时间,订单金额,共有多少件产品。下一步就是建立app/views/orders/handle.rhtml文件。这是个大文件,因为主要在那里查看订单数据。它是这样的:
如你所见,这里先显示了送货地址和账单地址,然后是所有订单项的数量、价格和总价。最后,提供了两个按钮让处理人员选择移除订单,或是将订单标注为已处理。
【责任编辑:
夏书 TEL:(010)68476606】