Welcome 微信登录

首页 / 软件开发 / JAVA / Ruby on rails开发从头来(windows)(九)-给购物车添加错误处理

Ruby on rails开发从头来(windows)(九)-给购物车添加错误处理2011-12-02 博客园 Cure在上次的内容里,我们演示了怎样构建一个简单的购物车,这次的内容非常简单,给购物车添加错误处理。

对于Web系统来说,并发处理是一个无法回避的问题,我们来模仿一个并发冲突的情景:

1.用户进入购物车页面,看到共有5种商品。

2.管理员在后台维护商品列表,将5种商品中的一种删除掉。

3.客户选中被删除掉的商品,添加到购物车。

在这种情况下,如果不作任何处理的话将会产生一个异常,而我们要作的,是处理这个异常,给用户显示一个商品不存在的错误提示。

1.首先我们需要修改StoreController的add_to_cart方法,下面是add_to_cart方法的代码:

def add_to_cart  product = Product.find(params[:id])  @cart = find_cart  @cart.add_product(product)  redirect_to(:action => "display_cart")rescue  logger.error("Attempt to access invalid product #{params[:id]}")  flash[:notice] = "Invalid product"  redirect_to(:action => "index")end
2.修改rails_appsdepotappviewsstore目录下的index.rhtml文件:

在<div id="main">这一句的后面添加下面的代码:

<% if @flash[:notice] -%>  <div id="notice">  <%= @flash[:notice] %></div><% end -%>