インスタンス変数がクラスBar1、Bar2、Bar3であるクラスがあるとします。 Barクラスの定義は任意であり、例のために名前がちょうど同じです。 BAR1、BAR2、BAR3は、私はちょうどデモのために所有者の値を構成したオブジェクトをそのパラメータの1つで参照する
class Bar1
def initialize
@value = owner.test_value # 'owner' would refer the Foo instance that contains this Bar1
end
end
class Bar2
def initialize
@value = owner.test_value
end
end
class Bar3
def initialize
@value = owner.test_value
end
end
のように定義されている
class Foo
attr_reader :test_value
def initialize
@test_value = "awesome"
@bar1 = Bar1.new
@bar2 = Bar2.new
@bar3 = Bar3.new
end
end
、でも可能、このようなものでしょうか?これは一種のように思えますが、この機能を必要とするコードを再構成するだけで解決できますが、完全に放棄する前にそれが可能かどうかを確認したいと考えています。
ありがとうございます!
それはあなたが本当に望んだ場合にもちょうどオーナーへの参照を保持できます。 'initialize'に' @owner = owner'という行を追加するだけです。 Rubyオブジェクトがどの他のオブジェクトへの参照を保持できるかについての規則はありません。オブジェクトが木のようなものではない、というようなものです。 –
これはちょうどうまくいく、私はプログラミングの長い一日の後にこれをやってみることに失敗した、ありがとう! –