我正在尝试创建一个需要一些复杂初始化的单例类。我把问题归结为这个测试用例:
class Dumb
attr_accessor :mything
@my_thing = 1 # this works
self.init_some_stuff # this gives undefined method
class << self
def init_some_stuff
@my_thing = 2
end
def spill_it
puts "My Thing: #{@my_thing}"
end
end
end
我可以初始化简单变量,但是想要调用类方法来实现它,我得到“未定义的方法”。由于我打算将它用作单例,因此不会调用构造函数。我错过了什么?
答案 0 :(得分:1)
只要满足该方法,就会执行该方法。
self.init_some_stuff
放在它的定义之前。那就是问题所在。把它放在定义之后。