这里有新的Rubyist。在我关于Ruby的讲座中,我遇到了各种技巧/快捷方式,用于向config/environment
文件添加文件依赖项,以便程序可以顺利运行。我不清楚这些中的哪一个在结合时是多余的;哪些是最佳做法;哪些是完全无用的和/或错误的,应该做很长的路。澄清将不胜感激!
我遇到的那些:
require_relative "../lib/test1.rb"
: << '.' & require "lib/test1.rb"
: << '.' & Dir['lib/*.rb'].each {|f| require f}
require File.dirname(__FILE__)
也可以包括其他方式!
答案 0 :(得分:1)
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可能使您的选择不方便的区域。