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