2010-06-21 3 views
0

В environment.rb я могу добавить строкуRails: load_paths для каталога и всех подкаталогов

config.load_paths += %W(#{RAILS_ROOT}/app/models/foos) 

где 'Foos' папка. Это загружает все файлы внутри папки foos. Однако он не загружает ни один из его подкаталогов.

Если бы я знал имена всех подкаталогов в папке «FOOS», эта проблема будет иметь простое решение:

%W[folder1 folder2 folder2].each { |f| f.config.load_paths += %W(#{RAILS_ROOT}/app/models/foos/#{f}) } 

Однако я не всегда буду знать имена всех папок внутри из 'Foos. Есть ли каким-то образом сделать это:

config.load_paths += %W(#{RAILS_ROOT}/app/models/foos/#{**WILDCARD**}) 

Благодаря

ответ

2

Похоже, что этот другой вопрос имеет тип решения вы ищете, чтобы получить все подкаталоги:

get all of the immediate subdirectories in ruby

Вы можете использовать что-то вроде следующего, чтобы указать на конкретный каталог и получить список всех его подкаталогов:

Dir['/home/username/Music/*/'] 

Это вернет массив всех путей к вспомогательным каталогам папки «Музыка».

+0

Выглядит хорошо. Не могли бы вы помочь мне адаптировать этот метод для работы в среде environment.rb. Например, Dir.glob ("** /") находит все подкаталоги в * текущем каталоге *. Я хочу указать на другой каталог, подкаталоги которого я хочу загрузить. – user94154

+1

обновил ответ, надеюсь, поможет вам настроить таргетинг на конкретный каталог. – Pete

Смежные вопросы