ruby类变量在development模式失效

来源:互联网 发布:无冬之夜2 mac 编辑:程序博客网 时间:2024/05/17 20:08

分页中用到类变量,主要是用来标记“页码输入框”的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模式会失效,每次重新载入某个类时,它的所有类变量都会再次初始化。

原创粉丝点击