Skip to content

Commit df32c38

Browse files
authored
Merge pull request rails#52100 from jdlubrano/fix-activerecord-configs-shadowing
Fix ActiveRecord configs variable shadowing
2 parents ddb8206 + e6d924e commit df32c38

File tree

2 files changed

+16
-3
lines changed

2 files changed

+16
-3
lines changed

activerecord/lib/active_record/railtie.rb

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -241,8 +241,7 @@ class Railtie < Rails::Railtie # :nodoc:
241241
end
242242

243243
ActiveSupport.on_load(:active_record) do
244-
# Configs used in other initializers
245-
configs = configs.except(
244+
configs_used_in_other_initializers = configs.except(
246245
:migration_error,
247246
:database_selector,
248247
:database_resolver,
@@ -259,7 +258,7 @@ class Railtie < Rails::Railtie # :nodoc:
259258
:postgresql_adapter_decode_dates,
260259
)
261260

262-
configs.each do |k, v|
261+
configs_used_in_other_initializers.each do |k, v|
263262
next if k == :encryption
264263
setter = "#{k}="
265264
# Some existing initializers might rely on Active Record configuration

railties/test/application/configuration_test.rb

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4482,6 +4482,20 @@ def new(app); self; end
44824482
assert_equal true, ActiveRecord.run_after_transaction_callbacks_in_order_defined
44834483
end
44844484

4485+
test "run_after_transaction_callbacks_in_order_defined can be set via framework defaults even if Active Record was previously loaded" do
4486+
remove_from_config '.*config\.load_defaults.*\n'
4487+
add_to_config 'config.load_defaults "7.0"'
4488+
app_file "config/initializers/01_configure_database.rb", <<-RUBY
4489+
ActiveRecord::Base.connected?
4490+
RUBY
4491+
app_file "config/initializers/new_framework_defaults_7_1.rb", <<-RUBY
4492+
Rails.application.config.active_record.run_after_transaction_callbacks_in_order_defined = true
4493+
RUBY
4494+
app "development"
4495+
4496+
assert_equal true, ActiveRecord.run_after_transaction_callbacks_in_order_defined
4497+
end
4498+
44854499
test "raises if configuration tries to assign to an actual method" do
44864500
remove_from_config '.*config\.load_defaults.*\n'
44874501
add_to_config 'config.load_defaults = "7.0"'

0 commit comments

Comments
 (0)