Итак, у меня есть два файла, один называется a.rb
, а другой - b.rb
. Вот содержимое обоих:
# a.rb
class A
def initialize
@variable = ""
@module_b = B.new(self)
end
def pass_to_b(self)
@module_b.do_something(@variable)
end
def set_variable(var)
# var = empty
@variable = var
end
end
и
# b.rb
class B
def initialize(module_a)
@module_a = module_a
end
def set_variable_in_a(data)
@module_a.set_variable(data)
end
def do_something(variable)
# variable = empty
set_variable_in_a("hello world")
end
end
Это всего лишь пример того, с чем я имею дело. Если я пытаюсь запустить функцию в классе A, которая должна что-то делать в ClassB, а затем изменить переменную экземпляра в классе A, я не уверен, как это сделать правильно. Однако это то, что я пробовал:
a = A.new
a.pass_to_b
Класс B не может видеть переменную экземпляра @variable
, и если он пытается set_variable_in_a
, это тоже не работает. Это похоже на то, что функция do_something
в классе A успешно вызывает функцию do_something
в классе B, но информация о переменной экземпляра недоступна. Я думал, что, передав self
классу B, мы сможем хотя бы вызвать функцию