can/should 如何在 config/environment 中包含 Ruby 项目文件依赖项?
How can/should I include Ruby project file dependencies in config/environment?
新 Ruby 在这里。在我关于 Ruby 的讲座中,我遇到了各种 tricks/shortcuts 用于将文件依赖项添加到 config/environment
文件,以便程序顺利运行。我一直不清楚其中哪些组合在一起时是多余的;哪些是最佳实践;并且完全没用 and/or 错误,应该从长远来看。澄清将不胜感激!
我遇到的:
require_relative "../lib/test1.rb"
: << '.' & require "lib/test1.rb"
: << '.' & Dir['lib/*.rb'].each {|f| require f}
require File.dirname(__FILE__)
- "require-all" gem
也欢迎加入其他方式!
config/environment.rb
是Rails框架本身有意见的文件。在您的应用程序的整个生命周期中,您将被积极地激励不要修改此文件(如果可以避免的话)。这将允许最简单的升级路径。考虑将初始化放在 config/initializers
.
中的文件中
如果您的代码从根本上改变了 Rails 本身的行为,以至于 config/initializers
中的位置失去了效力,或者如果您的代码的长期维护不是问题,我会考虑以上几点。项目 2+3 通过附加到您的 LOAD_PATH
来工作,我不推荐这样做,更不用说称为最佳实践了。 (默认情况下,添加 RAILS_ROOT/config
可能不是主要问题,但您可能会产生一些非常难以调试的错误。)
config/environment.rb
的位置已经很长时间没有改变,因此相对要求(即选项 #1)可能没问题。 require File.dirname(__FILE__)
本身什么都不做(你需要一个目录)但值得记住像 require File.join[File.dirname(__FILE__), '../lib/your_file.rb']
这样的方法,无论加载路径或工作目录问题如何,它都将工作相同。这就是我会做的。
我不会为此使用 gem,因为 gem 的行为可能会以不可预测的方式发生变化,而您已经处于 Rails 可以使你的选择不方便。
新 Ruby 在这里。在我关于 Ruby 的讲座中,我遇到了各种 tricks/shortcuts 用于将文件依赖项添加到 config/environment
文件,以便程序顺利运行。我一直不清楚其中哪些组合在一起时是多余的;哪些是最佳实践;并且完全没用 and/or 错误,应该从长远来看。澄清将不胜感激!
我遇到的:
require_relative "../lib/test1.rb"
: << '.' & require "lib/test1.rb"
: << '.' & Dir['lib/*.rb'].each {|f| require f}
require File.dirname(__FILE__)
- "require-all" gem
也欢迎加入其他方式!
config/environment.rb
是Rails框架本身有意见的文件。在您的应用程序的整个生命周期中,您将被积极地激励不要修改此文件(如果可以避免的话)。这将允许最简单的升级路径。考虑将初始化放在 config/initializers
.
如果您的代码从根本上改变了 Rails 本身的行为,以至于 config/initializers
中的位置失去了效力,或者如果您的代码的长期维护不是问题,我会考虑以上几点。项目 2+3 通过附加到您的 LOAD_PATH
来工作,我不推荐这样做,更不用说称为最佳实践了。 (默认情况下,添加 RAILS_ROOT/config
可能不是主要问题,但您可能会产生一些非常难以调试的错误。)
config/environment.rb
的位置已经很长时间没有改变,因此相对要求(即选项 #1)可能没问题。 require File.dirname(__FILE__)
本身什么都不做(你需要一个目录)但值得记住像 require File.join[File.dirname(__FILE__), '../lib/your_file.rb']
这样的方法,无论加载路径或工作目录问题如何,它都将工作相同。这就是我会做的。
我不会为此使用 gem,因为 gem 的行为可能会以不可预测的方式发生变化,而您已经处于 Rails 可以使你的选择不方便。