提交 757a5666 编写于 作者: K Kasper Timm Hansen

Merge pull request #22582 from sikachu/hwia-to_h

Make Parameters#to_h and #to_unsafe_h return HWIA
......@@ -162,8 +162,8 @@ def ==(other_hash)
end
end
# Returns a safe +Hash+ representation of this parameter with all
# unpermitted keys removed.
# Returns a safe <tt>ActiveSupport::HashWithIndifferentAccess</tt>
# representation of this parameter with all unpermitted keys removed.
#
# params = ActionController::Parameters.new({
# name: 'Senjougahara Hitagi',
......@@ -175,15 +175,17 @@ def ==(other_hash)
# safe_params.to_h # => {"name"=>"Senjougahara Hitagi"}
def to_h
if permitted?
@parameters.to_h
@parameters.deep_dup
else
slice(*self.class.always_permitted_parameters).permit!.to_h
end
end
# Returns an unsafe, unfiltered +Hash+ representation of this parameter.
# Returns an unsafe, unfiltered
# <tt>ActiveSupport::HashWithIndifferentAccess</tt> representation of this
# parameter.
def to_unsafe_h
@parameters.to_h
@parameters.deep_dup
end
alias_method :to_unsafe_hash, :to_unsafe_h
......
......@@ -256,7 +256,7 @@ def assert_filtered_out(params, key)
end
test "to_h returns empty hash on unpermitted params" do
assert @params.to_h.is_a? Hash
assert @params.to_h.is_a? ActiveSupport::HashWithIndifferentAccess
assert_not @params.to_h.is_a? ActionController::Parameters
assert @params.to_h.empty?
end
......@@ -264,7 +264,7 @@ def assert_filtered_out(params, key)
test "to_h returns converted hash on permitted params" do
@params.permit!
assert @params.to_h.is_a? Hash
assert @params.to_h.is_a? ActiveSupport::HashWithIndifferentAccess
assert_not @params.to_h.is_a? ActionController::Parameters
end
......@@ -273,7 +273,7 @@ def assert_filtered_out(params, key)
ActionController::Parameters.permit_all_parameters = true
params = ActionController::Parameters.new(crab: "Senjougahara Hitagi")
assert params.to_h.is_a? Hash
assert params.to_h.is_a? ActiveSupport::HashWithIndifferentAccess
assert_not @params.to_h.is_a? ActionController::Parameters
assert_equal({ "crab" => "Senjougahara Hitagi" }, params.to_h)
ensure
......@@ -294,7 +294,7 @@ def assert_filtered_out(params, key)
end
test "to_unsafe_h returns unfiltered params" do
assert @params.to_h.is_a? Hash
assert @params.to_h.is_a? ActiveSupport::HashWithIndifferentAccess
assert_not @params.to_h.is_a? ActionController::Parameters
end
end
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册