Rails - требует работы с одним файлом, но требует, чтобы весь каталог не был

Требует, чтобы один файл работал нормально:

require Rails.root.join('lib/railsadmin_custom_functions', 'drive_clear.rb')

-

Теперь я пытаюсь автоматизировать и требовать все файлы в одной папке:

Dir[Rails.root.join('lib/railsadmin_custom_functions')].each {|file| require file }

Поэтому я получаю эту ошибку:

dependencies.rb:229:in 'require': cannot load such file -- /Users/me/projects/myproject/lib/railsadmin_custom_functions (LoadError)

Я делаю что-то неправильно?

2 ответа

Ваш код для загрузки railsadmin_custom_functions в виде файла.

'lib/railsadmin_custom_functions'

изменить на

'lib/railsadmin_custom_fuctions/*.extention_of_files'

Попробуй это

Dir["#{Rails.root}/lib/railsadmin_custom_functions/*.rb"].each {|file| require file }

или

Dir.glob("#{Rails.root}/lib/railsadmin_custom_functions/*.rb")

вывод

=> ["/Users/me/projects/myproject/lib/railsadmin_custom_functions/file1.rb", "/Users/me/projects/myproject/lib/railsadmin_custom_functions/file2.rb"]

Или попробуйте это, если вы хотите требовать файлы во всех папках и файлах в подпапках

Dir.glob("#{Rails.root}/lib/railsadmin_custom_functions/**/*.rb")


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

Dir[Rails.root.join('lib/railsadmin_custom_functions')].each do |file|
 next if File.directory?(file)
 require file
end

licensed under cc by-sa 3.0 with attribution.