я могу вызвать функцию для определения переменной в определении модуля? - PullRequest
0 голосов
/ 28 января 2020

Я хотел бы определить переменную @@ importers при загрузке моего модуля.

module Importers
  @@importers_dir = File.dirname(__FILE__) + '/services/'
  @@importers = self.load_and_instantiate()
  def self.load_and_instantiate()
     #mycode here
  end
end

Но это не работает:

неопределенный метод load_and_instantiate для импортеров: Модуль (NoMethodError)

Как мне справиться с этим?

Спасибо!

1 Ответ

2 голосов
/ 28 января 2020

В тот момент, когда вы вызываете load_and_instantiate, оно действительно не определено, потому что вы определяете его позже в коде.

Просто измените порядок и вызовите метод после того, как вы определили метод:

def self.load_and_instantiate
  # mycode here
end

@@importers = self.load_and_instantiate

Обратите внимание, что использование переменных класса редко встречается в Ruby.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...