Rails不会加载自定义Ruby脚本

时间:2018-01-23 19:45:54

标签: ruby-on-rails ruby ruby-on-rails-5

所以我刚刚创建了一个/scripts目录。脚本自动加载

config.autoload_paths += ["#{Rails.root}/scripts"]
config.eager_load_paths += ["#{Rails.root}/scripts"]

问题

scripts/schemes/*.rb中的脚本也应该运行,但它们不是。

实施例。使用

编写示例脚本scripts/schemes/write.rb
File.open('foo.txt', 'w') do |f|
  f.write('123')
end

然后转到控制台rails console。您将看不到要创建的文件,而预计会创建foo.txt

如何在启动时执行scripts/schemes/中的这些文件?

解决问题的尝试失败

  • 要求/scripts/main.rb要求require)或加载load scripts/schemes/*.rb处的文件。 澄清:因为文件已经在application.rb中加载autoload_paths Rails会抛出错误。

  • scripts/schemes中加入config.autoload_paths澄清:没有任何改变。

1 个答案:

答案 0 :(得分:0)

刚刚发现。

只有当名称​​符合文件名时,Rails才会加载类和模块。

例如,scripts/schemes/foo_name.rb内容为

module FooName
  # ...
end

class FooName
  # ...
end