@eldar_web

Что делать в Ruby (Rails), если внутри какого-то блока не виден метод класса?

Допустим есть класс:
class MyClass

def a_method
 ...
end

def b_method
 Technology.new do |t|
   a_method()
 end
end

end


Вот здесь в методе B в блоке Technology не виден метод А.
Как можно решить проблему?
Сделать метод A методом класса не вариант.
  • Вопрос задан
  • 139 просмотров
Пригласить эксперта
Ответы на вопрос 1
codepad.org/HcmmPAgg

# Technology
class Technology
  attr_accessor :val

  def initialize
    @val = 42
    yield self
  end
end

# MyClass2
class MyClass
  # @param [Integer] val
  # @return [NilClass]
  def a_method(val)
    puts val
  end

  # @return [NilClass]
  def b_method
    Technology.new do |technology|
      a_method technology.val
    end
  end
end

my_class = MyClass.new
my_class.b_method # => 42


Всё должно работать.
Покажите ошибку, которую выдаёт интерпретатор.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы