Rails5中如何定义应用配置?
How to define application configurations in Rails 5?
我通常在 config/application.rb
中进行如下设置
config.generators.stylesheets = false
config.time_zone = 'Berlin'
但在 Rails 5 中可以在 config/application.rb
中找到以下消息
# Settings in config/environments/* take precedence over those specified here.
# Application configuration should go into files in config/initializers
# -- all .rb files in that directory are automatically loaded.
这是什么意思?我应该为每个配置设置添加一个初始化文件吗?在那种情况下,这样的文件应该包含什么?
您应该仍然可以将配置放在 config/application.rb
中,但是该消息通知您您的环境特定配置优先于那里指定的配置,因此如果您有另一个配置覆盖任何此类配置config/environments
将使用特定环境中的值。
如果您使用初始化方法,在您的 config/initializers/stylesheet_generator.rb
中,您将拥有:
Rails.application.config.generators.stylesheets = false
在您的 config/initializers/time_zone.rb
中,您将拥有:
Rails.application.config.time_zone = 'Berlin'
我通常在 config/application.rb
中进行如下设置config.generators.stylesheets = false
config.time_zone = 'Berlin'
但在 Rails 5 中可以在 config/application.rb
中找到以下消息# Settings in config/environments/* take precedence over those specified here.
# Application configuration should go into files in config/initializers
# -- all .rb files in that directory are automatically loaded.
这是什么意思?我应该为每个配置设置添加一个初始化文件吗?在那种情况下,这样的文件应该包含什么?
您应该仍然可以将配置放在 config/application.rb
中,但是该消息通知您您的环境特定配置优先于那里指定的配置,因此如果您有另一个配置覆盖任何此类配置config/environments
将使用特定环境中的值。
如果您使用初始化方法,在您的 config/initializers/stylesheet_generator.rb
中,您将拥有:
Rails.application.config.generators.stylesheets = false
在您的 config/initializers/time_zone.rb
中,您将拥有:
Rails.application.config.time_zone = 'Berlin'