1
0
Fork 0
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:
Luke Melia 2008-06-24 22:50:14 -04:00 committed by Michael Koziarski
parent 086c3520c4
commit 7ce03db778
2 changed files with 9 additions and 2 deletions

View file

@ -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

View file

@ -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",