ruby类变量在development模式失效

分页中用到类变量,主要是用来标记“页码输入框”的id

image

如果一个页面有几个分页,“页码输入框”的id要是不同的才能分清是哪个要分页。使用类变量就是为了达到这个目的,让所有的对象实例共用一个变量,不必每次重新初始化变量。

类变量使用代码示例

   1  require 'ruby-debug'  
   2  debugger
   3  class Myclassvar
   4    @@a=1
   5    puts 1111111111111111111111
   6    puts @@a
   7  
   8    def testa
   9      @@a=@@a+5
   10    end 

   11    def testb
   12      @@a=@@a+3
   13      end
   14    end
   15    
   16    class Reclassvar < Myclassvar
   17      def testa
   18         @@a+=10
   19      end
   20    end 


   21    
   22     obj=Myclassvar.new
   23     puts obj.testa
   24     puts obj.testb
   25     obj2=Myclassvar.new
   26     puts obj2.testb
   27     obj3=Reclassvar.new
   28     puts obj3.testa

执行顺序是 3=>4=>5=>6=>8=>11=>16=>17=>22=>23=>9=>24=>12=>25=>26=>12……

本地测试类变量完全符合预想,但是项目中的分页用到的类变量却是每次都要初始化,一度郁闷中。结果是因为Rails开在development模式时配置中有config.cache_classes = false,所以我们每次不用重启服务就可以查看更新代码后的运行结果。而服务器上的程序是开启在production模式,其中config.cache_classes = true。这就是为什么类变量在development模式会失效,每次重新载入某个类时,它的所有类变量都会再次初始化。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值