Ruby on rails 在rails中将配置常量放在哪里

Ruby on rails 在rails中将配置常量放在哪里,ruby-on-rails,ruby,configuration,Ruby On Rails,Ruby,Configuration,我必须在我的/app/config/environments/production.rb中使用一个常量。我想把它作为配置常数放在某个地方。所以我试着把它放在一个初始值设定项文件中,但是/app/config/environments/production.rb似乎以前就被加载过。然后我试着把我的常量放在/app/config/environment.rb中的/app/config/environments/production.rb中,但是/app/config/environments/pro

我必须在我的
/app/config/environments/production.rb中使用一个常量。我想把它作为配置常数放在某个地方。所以我试着把它放在一个
初始值设定项
文件中,但是
/app/config/environments/production.rb
似乎以前就被加载过。然后我试着把我的常量放在
/app/config/environment.rb
中的
/app/config/environments/production.rb
中,但是
/app/config/environments/production.rb
之前似乎仍然被加载。我在哪里可以将此常量适当地设置为配置常量,以便
/app/config/environments/production.rb
能够识别它?

让我们明确一下,应用程序加载初始化文件的路径是什么。你必须记住这一点:

当您运行运行
rails
(从运行
rails
服务器的
app/script/rails
文件)时

  • 您的应用程序
    boot.rb
    文件(主要处理gems加载)是必需的,然后您的控制台
    args
    (此处
    服务器
    别名
    s
    )要求被传递到
    rails
    rails/lib/rails/command.rb
    文件(位于
    rails
    源代码中)

  • 在那里,您的应用程序
    config/application.rb
    是必需的。然后,实例化
    Server
    类,并将您抛出到
    railties/lib/rails/command/Server.rb
    文件中。事实上,
    Server
    类来自
    Rack::Server
    ,因此
    rails
    应用程序就是
    Rack
    应用程序!因此,您将在
    rails
    应用程序中找到一个
    config.ru
    文件,这将加载
    config/environment.rb
    文件

config/environment.rb
文件做两件事

  • 需要你的应用程序
    config/application.rb
    ,加载适当的
    rails框架
    。(有关详细信息,您可以在应用程序
    application.rb
    中找到继承自
    Rails::application
    application
    类,该类从继承自
    Rails::Railtie
    类的
    Rails::Engine
    中继承自身)

  • 调用
    initialize!
    bang方法,加载
    config/environment/*.rb
    文件,然后处理所有初始化器进程(更准确地说,初始化器方法在
    railties/lib/rails/engine.rb
    中定义)所以,现在,考虑到这一点,您应该能够正确地定义常量


为了更好地理解初始化过程,我建议您使用这个很棒的方法,这主要启发了这个答案。

在您的应用程序中管理配置时尝试一下这个方法:假设您在生产中只需要这个常量,那么如果您在更多方面需要它,您能不能在
config/environments/production.rb
的顶部定义这个常量除了生产,您还可以在
config/environment.rb