Рекурсивно включая все подкаталоги модели - PullRequest
18 голосов
/ 13 октября 2011

Как вы рекурсивно загружаете все каталоги в каталогах моделей и lib? В application.rb у меня есть строки:

config.autoload_paths += Dir[Rails.root.join('app', 'models', '{**}')]
config.autoload_paths += Dir[Rails.root.join('lib', '{**}')]

но они, кажется, добавляют только один уровень подкаталогов модели и lib.

Спасибо

1 Ответ

38 голосов
/ 13 октября 2011

это должно быть полезно

 Dir["#{config.root}/app/models/**/","#{config.root}/lib/**/"]

наслаждайтесь! (

Обновление:

Отличный вопрос, разместив пример выше, я просто сослался на свой недавний проект.

После некоторых испытаний ко мне приходит лучшее понимание, и это здорово.

Основное отличие, конечно, ни в методе соединения File, ни в config.root / Rails.root

Трейлинг '/' после '**' имеет смысл.

Первый говорит, что совпадает с только каталогами при глобализации. Второй говорит это сделать рекурсивно .

В вашем случае это тоже может быть уместно

Dir[ Rails.root.join('app', 'models', '**/') ]
...