rails - 需要单个文件工作,但不需要所有目录

时间:2014-09-12 12:46:17

标签: ruby-on-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 个答案:

答案 0 :(得分: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")

答案 1 :(得分:0)

您必须跳过...,它们是目录列表的条目。您可能还需要检查条目是否是目录并跳过它们:

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