Web开发敏捷之道Rails(笔记五)

1:处理错误

  Rails定义了一个flash的结构,在处理请求的过程中把任何东西放进去,其用来收集错误信息。比如,add_to_cart() action发现传入了货品id不合法,它就会将错误信息保存在flash中,并重定向到index() action。

  

def add_to_cart
   begin
       @product=Product.find(params[:id])
   rescue ActiveRecord::RecordNotFound 
       logger.error("A error  id")
       flash[:notice]="error product id"
       redirect_to:action=>:index
   else  
      @cart=find_cart
      @cart.add_product(product)
   end
end

#rescue子句拦下Product.find()抛下的异常
#Rails的日志记录器记下了这个错误,每个控制器都可以通过logger属性访问日志记录器,这里的日志级别是error
# 创建了一条flash提示信息,和hash一样使用,用:notice作为存放提示信息的键
#redirect_to()方法将浏览器重定向 index控制器

     如果出现异常,我们可以查看日志文件的末尾处,可以看到输出的错误信息(log目录下的 development.log文件)

     在页面显示flash信息

  

<% if flash[:notice] %>
  <%= flash[:notice] %>
<% end %>

 

2: 清空session对象(紧接上篇)

 

<%= link_to "清空购物车" ,:action=>:empty_cart %>

 

 

def empty_cart
    session[:cart]=nil
    flash[:notice]="购物车已清空"
    redirect_to:action=>:index
end

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值