Ruby クラスの別のクラスのインスタンスと通信する
概要
これはおそらく以前に回答されていると思いますが、ボード検索を使用して解決策を見つけるための適切な語彙がありません。
私が達成したいのは、別のクラスのクラスのインスタンスのメソッドを呼び出すことです。
この粗雑な例は、私が達成したいことを示していると思います。
class ClassA
def method_a
return 'first example'
end
def method_b
return 'second example'
end
end
class ClassB
def initialize
object = classA.new
end
end
the_example = classB.new
the_example.[whatever-I’m-missing-to-talk-with-object].method_b
# should return 'second exampe'
解決策
object は、初期化の呼び出し後にスコープ外にならないようにインスタンス変数である必要があるため、代わりに @object と呼び出します。
次に、classB の定義の外で @object にアクセスできるようにする必要があるため、それを宣言する必要があります。
class ClassB
attr_reader :object # lets you call 'some_instance_of_classb.object'
def initialize
@object = ClassA.new
end
end