是否有环境变量和一些命令行选项来检查我的 rails 应用程序的目录,这些目录是自动设置的还是在某处配置的,以便 rails 知道在哪里加载库等?
作为比较,ruby 有一个命令行选项 (-I):
ruby -I path:another/path:/usr/lib rubyfile.rb arg1 arg2
这样用户可以设置 Ruby 可以查找库的目录。
同样,我在这里问一下,对于 Rails,是否有类似的方法来检查 Rails 应用程序的加载路径?或者是否在某处设置了某个变量?
重点:我使用的是 Rails 4.2.0 版。 config/application.rb 示例代码似乎没有包含 config.autoload_paths,甚至在注释中也没有,它曾经是 Rails 3 和 Rails 4.1.x 的注释。
而且,Rails 应用程序如何知道在哪里查找 Gems 等?
谢谢!
最佳答案
查看此文件:
config/application.rb
具体来说,您添加此设置:
config.autoload_paths
您可以像这样添加到自动加载路径:
config.autoload_paths << Rails.root.join('mydir')
config.autoload_paths
接受一组路径,Rails 将从中自动加载常量。
默认为./app
下的所有目录,如controllers
、models
等
默认情况下不会从典型的顶级./lib
目录自动加载。如果你想从 lib 自动加载:
config.autoload_paths << Rails.root.join('lib')
参见 Rails Guides for Configuring
Rails 知道在哪里寻找 gem 的方式有很多:通常是您的环境 GEM_PATH
或 bundler
gem bundle exec
命令。例如,我个人将我的 Rails gem 捆绑到 ./vendor/bundle/
中。
关于ruby-on-rails - ruby rails 4.2.0 : How to find the directories set for loading libraries etc,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27739454/