aboutsummaryrefslogtreecommitdiffstats
path: root/actionpack/lib
diff options
context:
space:
mode:
authorMatthew Draper <matthew@trebex.net>2016-07-12 05:54:26 +0930
committerGitHub <noreply@github.com>2016-07-12 05:54:26 +0930
commite6352dbbb591abcc04feeecd14308b375241047c (patch)
treef69b3d6db22d295588355f32565ecc91aac8c59b /actionpack/lib
parent629dde297ce5e4b7614fbb0218f2593effaf7e28 (diff)
parent96070595697477676ea051c19c2c951901302bed (diff)
downloadrails-e6352dbbb591abcc04feeecd14308b375241047c.tar.gz
rails-e6352dbbb591abcc04feeecd14308b375241047c.tar.bz2
rails-e6352dbbb591abcc04feeecd14308b375241047c.zip
Merge pull request #25735 from timrogers/actioncontroller-parameters-dup
Stop changes to a dupped `ActionController::Parameters` mutating the original
Diffstat (limited to 'actionpack/lib')
-rw-r--r--actionpack/lib/action_controller/metal/strong_parameters.rb19
1 files changed, 5 insertions, 14 deletions
diff --git a/actionpack/lib/action_controller/metal/strong_parameters.rb b/actionpack/lib/action_controller/metal/strong_parameters.rb
index b326695ce2..26794c67b7 100644
--- a/actionpack/lib/action_controller/metal/strong_parameters.rb
+++ b/actionpack/lib/action_controller/metal/strong_parameters.rb
@@ -572,20 +572,6 @@ module ActionController
convert_value_to_parameters(@parameters.values_at(*keys))
end
- # Returns an exact copy of the <tt>ActionController::Parameters</tt>
- # instance. +permitted+ state is kept on the duped object.
- #
- # params = ActionController::Parameters.new(a: 1)
- # params.permit!
- # params.permitted? # => true
- # copy_params = params.dup # => <ActionController::Parameters {"a"=>1} permitted: true>
- # copy_params.permitted? # => true
- def dup
- super.tap do |duplicate|
- duplicate.permitted = @permitted
- end
- end
-
# Returns a new <tt>ActionController::Parameters</tt> with all keys from
# +other_hash+ merges into current hash.
def merge(other_hash)
@@ -783,6 +769,11 @@ module ActionController
end
end
end
+
+ def initialize_copy(source)
+ super
+ @parameters = @parameters.dup
+ end
end
# == Strong \Parameters