Skip to content

Commit 2b8b45a

Browse files
Merge pull request rails#48180 from jonathanhefner/filter_parameters-precompile-in-place
Precompile `config.filter_parameters` in place
2 parents bc34f35 + 9b7e92a commit 2b8b45a

File tree

2 files changed

+19
-3
lines changed

2 files changed

+19
-3
lines changed

railties/lib/rails/application.rb

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -675,10 +675,11 @@ def coerce_same_site_protection(protection)
675675

676676
def filter_parameters
677677
if config.precompile_filter_parameters
678-
ActiveSupport::ParameterFilter.precompile_filters(config.filter_parameters)
679-
else
680-
config.filter_parameters
678+
config.filter_parameters.replace(
679+
ActiveSupport::ParameterFilter.precompile_filters(config.filter_parameters)
680+
)
681681
end
682+
config.filter_parameters
682683
end
683684
end
684685
end

railties/test/application/configuration_test.rb

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -557,6 +557,21 @@ class Comment < ActiveRecord::Base
557557
assert_equal filters, Rails.application.env_config["action_dispatch.parameter_filter"]
558558
end
559559

560+
test "filter_parameters reflects changes to config.filter_parameters after being precompiled" do
561+
add_to_config <<~RUBY
562+
config.filter_parameters += [/foo/, :bar]
563+
config.precompile_filter_parameters = true
564+
RUBY
565+
566+
app "development"
567+
568+
assert_not_empty Rails.application.env_config["action_dispatch.parameter_filter"]
569+
570+
Rails.application.config.filter_parameters << "baz.qux"
571+
572+
assert_includes Rails.application.env_config["action_dispatch.parameter_filter"], "baz.qux"
573+
end
574+
560575
test "config.precompile_filter_parameters is true by default for new apps" do
561576
app "development"
562577

0 commit comments

Comments
 (0)