所以我想要一个带变量和访问方法的模块.
我的代码看起来像这样
module Certificates
module Defaults
class << self
attr_accessor :address
def get_defaults
address = "something"
make_root_cert
end
def make_root_cert
blub = address
# do somthing
end
end
end
Run Code Online (Sandbox Code Playgroud)
我用撬检查了它.
结果是
我在另一个模块中使用这种方式创建attr_accessor并且工作正常.我希望我只是误解了ruby的工作方式,有人可以解释为什么这个例子不起作用.也许使用ruby对象模型的实现细节.
杰里米是对的.
这似乎与我不一致.
另一方面,address ="test" 总是设置局部变量.
在您的get_defaults方法中,address是一个局部变量.要使用setter,您必须输入以下内容:
self.address = "something"
Run Code Online (Sandbox Code Playgroud)
这将正确调用该address=方法.