我现在这样用
class A
class << self
attr_accessor :username, :password
def fun
# username
end
end
我想在外部配置 username,和 password
比如在 initializer 目录里面放一个文件,里面写
A.username = 'xxxx' A.password = 'xxxx'
我在 A.fun 里面取不到设置的值
我想这样用,应该如何实现 A 呢?
class A
cattr_accessor :username, :abc
class << self
def fun
username.
end
end
end
#11 楼 @doitian 而在 class << self
block 里用 attr_accessor
用的 class 的 instance variable。子类拥有自己的拷贝。子类的修改不影响父类。子类在声明时,也不会从父类继承当前的值。所以子类必须自己初始化。
但很多时候又想继承值,但在子类修改的时候不影响父类(写时拷贝),于是 Rails 又捣腾出个 class_attribute (旧称 class_inheritable_accessor
)