Как узнать, определен ли модуль в Rails? - PullRequest
1 голос
/ 28 февраля 2012

В Ruby легко увидеть, определен ли модуль:

defined? MyModule

Но в Rails, когда вы это делаете, Rails пытается загрузить модуль (из путей автозагрузки и т. Д.). Поэтому, если он не существует, он возвращает ошибку вместо возврата false.

Я мог бы сделать

do
  defined? MyModule
rescue
  # false
end

а разве есть лучший способ?

1 Ответ

0 голосов
/ 28 февраля 2012

Какую версию Ruby и Rails вы используете? Когда я пытаюсь это сделать, ошибка не выдается:

ruby-1.9.3-p0 :1 > defined? Rails
 => "constant" 
ruby-1.9.3-p0 :2 > defined? NotAConstant
 => nil 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...