diff options
author | Yuji Yaginuma <yuuji.yaginuma@gmail.com> | 2018-02-13 07:13:38 +0900 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-02-13 07:13:38 +0900 |
commit | 2c4e9c678bcfae23fcee28c105577403ebb2aa00 (patch) | |
tree | 04ebd22004f66792d6b0b090fd1c4215b406f8d5 /railties/lib | |
parent | c01c38efbda53b66a4a7d677af523ac8ac493321 (diff) | |
download | rails-2c4e9c678bcfae23fcee28c105577403ebb2aa00.tar.gz rails-2c4e9c678bcfae23fcee28c105577403ebb2aa00.tar.bz2 rails-2c4e9c678bcfae23fcee28c105577403ebb2aa00.zip |
Do not update `load_defaults` version when running `app:update` (#31951)
Incompatible settings are included in the settings set by `load_defaults`.
So, I think that target version should be updated by a user when becomes
available, and should not be updated with `app:update`.
Diffstat (limited to 'railties/lib')
3 files changed, 11 insertions, 2 deletions
diff --git a/railties/lib/rails/application/configuration.rb b/railties/lib/rails/application/configuration.rb index 6743ab2a54..46ad3557e3 100644 --- a/railties/lib/rails/application/configuration.rb +++ b/railties/lib/rails/application/configuration.rb @@ -19,7 +19,7 @@ module Rails :read_encrypted_secrets, :log_level, :content_security_policy_report_only, :require_master_key - attr_reader :encoding, :api_only + attr_reader :encoding, :api_only, :loaded_config_version def initialize(*) super @@ -58,6 +58,7 @@ module Rails @content_security_policy = nil @content_security_policy_report_only = false @require_master_key = false + @loaded_config_version = nil end def load_defaults(target_version) @@ -118,6 +119,8 @@ module Rails else raise "Unknown version #{target_version.to_s.inspect}" end + + @loaded_config_version = target_version end def encoding=(value) diff --git a/railties/lib/rails/generators/rails/app/app_generator.rb b/railties/lib/rails/generators/rails/app/app_generator.rb index 3eb7f6b845..72b9044858 100644 --- a/railties/lib/rails/generators/rails/app/app_generator.rb +++ b/railties/lib/rails/generators/rails/app/app_generator.rb @@ -130,6 +130,8 @@ module Rails assets_config_exist = File.exist?("config/initializers/assets.rb") csp_config_exist = File.exist?("config/initializers/content_security_policy.rb") + @config_target_version = Rails.application.config.loaded_config_version || "5.0" + config unless cookie_serializer_config_exist @@ -233,6 +235,10 @@ module Rails def vendor empty_directory_with_keep_file "vendor" end + + def config_target_version + defined?(@config_target_version) ? @config_target_version : Rails::VERSION::STRING.to_f + end end module Generators diff --git a/railties/lib/rails/generators/rails/app/templates/config/application.rb.tt b/railties/lib/rails/generators/rails/app/templates/config/application.rb.tt index d1a09f9c3c..9a427113c7 100644 --- a/railties/lib/rails/generators/rails/app/templates/config/application.rb.tt +++ b/railties/lib/rails/generators/rails/app/templates/config/application.rb.tt @@ -24,7 +24,7 @@ Bundler.require(*Rails.groups) module <%= app_const_base %> class Application < Rails::Application # Initialize configuration defaults for originally generated Rails version. - config.load_defaults <%= Rails::VERSION::STRING.to_f %> + config.load_defaults <%= build(:config_target_version) %> # Settings in config/environments/* take precedence over those specified here. # Application configuration can go into files in config/initializers |