rubyonrails:Ruby on rails开发从头来(windows)( 9)-给购物车添加错误处理

  在上次内容里我们演示了怎样构建个简单购物车这次内容非常简单给购物车添加处理

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

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

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

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

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

  1.     首先我们需要修改StoreControlleradd_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="">这后面添加下面代码:

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


  然后在按照前面提到3个步骤模拟个并发冲突情形就会在页面上表示信息了如下图:



Tags:  rubyonrails安装 rubyforrails rubyrails rubyonrails

延伸阅读

最新评论

发表评论