如何attr_accessor
从子类访问实例变量?
class A
attr_accessor :somevar
@somevar = 123
puts @somevar
end
class B < A
def meth
puts @somevar
end
end
B.new.meth
放nil
...
PS 我可以使用 ActiveSupport。
如何attr_accessor
从子类访问实例变量?
class A
attr_accessor :somevar
@somevar = 123
puts @somevar
end
class B < A
def meth
puts @somevar
end
end
B.new.meth
放nil
...
PS 我可以使用 ActiveSupport。
您需要在初始化方法中设置实例变量——每当创建新的类实例时都会调用它:
class A
attr_accessor :somevar
def initialize
@somevar = 123
end
end
首先,您没有 A 的实例来分配值。在 A 上放置一个初始化方法,以便在创建 B 的实例时,可以将 somevar 值作为参数传递给新函数:
class A
attr_accessor :somevar
def initialize(somevar)
@somevar = somevar
end
end
class B < A
def meth
puts @somevar
end
end
B.new('LOL').meth