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
..。
PSActiveSupportを使用できます。
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
..。
PSActiveSupportを使用できます。
初期化メソッドでインスタンス変数を設定する必要があります。これは、新しいクラスインスタンスが作成されるたびに呼び出されます。
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