1

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を使用できます。

4

2 に答える 2

1

初期化メソッドでインスタンス変数を設定する必要があります。これは、新しいクラスインスタンスが作成されるたびに呼び出されます。

class A
  attr_accessor :somevar
  def initialize
    @somevar = 123
  end
end
于 2012-06-06T18:04:40.960 に答える
1

まず、値を割り当てるための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
于 2012-06-06T18:05:26.780 に答える