Ruby - 在连续读取时覆盖的类变量

时间:2010-12-22 04:45:39

标签: ruby-on-rails ruby

我有一个类似的课程:

class MyNumber
  @@number = nil

  unless @@number
    @@number = rand(10)
  end

  def number
    @@number
  end
end

当我随后在此类上调用数字方法时,数字会不断变化。我只想设置一次这个数字,让它在整个课堂上保持不变。我怎样才能做到这一点。

在java用语中,我试图为这个类设置一个静态变量和静态方法。

3 个答案:

答案 0 :(得分:1)

它应该可以工作,但是你如何调用类 - 如果重新加载类,它将具有不同的值。

答案 1 :(得分:0)

这是由铁路自动卸载/重装引起的。有一种解决方法可以让类在请求中保持不变。

在我的环境中.rb我必须添加这个

config.after_initialize do
  require 'my_number'
end

答案 2 :(得分:0)

我认为这样写得更好:

class MyNumber
  def number
    @@number ||= rand(10)
  end
end