比较session中数值的问题

今天写程序碰到一个问题,before_filter中的函数总是没有执行,贴出来我的代码:
ruby 代码
 
  1. before_filter :dont_lock_self:only=>:lock  
  2. before_filter :dont_unlock_self:only=>:unlock  
  3. before_filter :dont_destroy_self:only=>:destro  
  4.   
  5. protected  
  6. def operate_to_self?(user_id)  
  7.   if session[:user_id] == user_id  
  8.     return true  
  9.   end  
  10.   return false  
  11. end  
  12.   
  13. def dont_lock_self  
  14.   frag = operate_to_self?(params[:id])  
  15.   if frag == true  
  16.     flash[:notice] = "You Can not lock Yourself"  
  17.     redirect_to :action=>:list  
  18.   end  
  19. end  
  20.   
  21. def dont_unlock_self  
  22.   frag = operate_to_self?(params[:id])  
  23.   if frag == true  
  24.     flash[:notice] = "You Can not unlock Yourself"  
  25.     redirect_to :action=>:list  
  26.   end  
  27. end  
  28.   
  29. def dont_destroy_self  
  30.   frag = operate_to_self?(params[:id])  
  31.   if frag == true  
  32.     flash[:notice] = "You can't destroy Yourself"  
  33.     redirect_to :action=>:list  
  34.   end  
  35. en  
实验了半天(不会调试ror程序。。汗),发现operate_to_self?返回的总是false,一步步跟踪,发现问题出在这里
ruby 代码
 
  1. if session[:user_id] == user_id   
通过logger打印出来来看两个值相同,但是比较的结果却是不相同,猜想是两者的类型不同,加上 .to_i 参数,再进行比较,问题终于消失。
ruby 代码
 
  1. if session[:user_id].to_i == user_id.to_i    
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值