Merge pull request #1676 from jkowens/fix-1666

Preserve query param value if named route param nil
This commit is contained in:
namusyaka 2022-02-13 17:56:41 +09:00 committed by GitHub
commit e9b3d3fd2e
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 5 additions and 1 deletions

View File

@ -1049,7 +1049,7 @@ module Sinatra
params.delete("ignore") # TODO: better params handling, maybe turn it into "smart" object or detect changes
force_encoding(params)
@params = @params.merge(params) if params.any?
@params = @params.merge(params) { |k, v1, v2| v2 || v1 } if params.any?
regexp_exists = pattern.is_a?(Mustermann::Regular) || (pattern.respond_to?(:patterns) && pattern.patterns.any? {|subpattern| subpattern.is_a?(Mustermann::Regular)} )
if regexp_exists

View File

@ -358,6 +358,10 @@ class RoutingTest < Minitest::Test
assert ok?
assert_equal "foo=hello;bar=", body
get '/hello?bar=baz'
assert ok?
assert_equal "foo=hello;bar=baz", body
get '/'
assert ok?
assert_equal "foo=;bar=", body