mirror of
https://github.com/rails/rails.git
synced 2022-11-09 12:12:34 -05:00
Fixes optimised named routes generating question mark followed by nothing when provided an empty hash as the last argument.
Signed-off-by: Michael Koziarski <michael@koziarski.com> [#481 state:committed]
This commit is contained in:
parent
086c3520c4
commit
7ce03db778
2 changed files with 9 additions and 2 deletions
|
@ -103,9 +103,10 @@ module ActionController
|
|||
end
|
||||
|
||||
# This case uses almost the same code as positional arguments,
|
||||
# but add an args.last.to_query on the end
|
||||
# but add a question mark and args.last.to_query on the end,
|
||||
# unless the last arg is empty
|
||||
def generation_code
|
||||
super.insert(-2, '?#{args.last.to_query}')
|
||||
super.insert(-2, '#{\'?\' + args.last.to_query unless args.last.empty?}')
|
||||
end
|
||||
|
||||
# To avoid generating "http://localhost/?host=foo.example.com" we
|
||||
|
|
|
@ -1694,6 +1694,12 @@ uses_mocha 'LegacyRouteSet, Route, RouteSet and RouteLoading' do
|
|||
controller.send(:multi_url, 7, "hello", 5, :baz => "bar")
|
||||
end
|
||||
|
||||
def test_named_route_url_method_with_ordered_parameters_and_empty_hash
|
||||
controller = setup_named_route_test
|
||||
assert_equal "http://named.route.test/people/go/7/hello/joe/5",
|
||||
controller.send(:multi_url, 7, "hello", 5, {})
|
||||
end
|
||||
|
||||
def test_named_route_url_method_with_no_positional_arguments
|
||||
controller = setup_named_route_test
|
||||
assert_equal "http://named.route.test/people?baz=bar",
|
||||
|
|
Loading…
Reference in a new issue