Skip to content

Commit e886f97

Browse files
committed
Merge pull request rails#3337 from htanata/fix_rake_routes_for_controller_only_route
Remove trailing "#" on rake routes for controller only routes
2 parents e22a4c6 + 010622b commit e886f97

File tree

2 files changed

+18
-9
lines changed

2 files changed

+18
-9
lines changed

railties/lib/rails/application/route_inspector.rb

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -10,20 +10,21 @@ def format all_routes, filter = nil
1010
end
1111

1212
routes = all_routes.collect do |route|
13+
route_reqs = route.requirements
1314

14-
reqs = route.requirements.dup
1515
rack_app = route.app unless route.app.class.name.to_s =~ /^ActionDispatch::Routing/
1616

17-
endpoint = rack_app ? rack_app.inspect : "#{reqs[:controller]}##{reqs[:action]}"
18-
constraints = reqs.except(:controller, :action)
17+
controller = route_reqs[:controller] || ':controller'
18+
action = route_reqs[:action] || ':action'
1919

20-
reqs = endpoint == '#' ? '' : endpoint
20+
endpoint = rack_app ? rack_app.inspect : "#{controller}##{action}"
21+
constraints = route_reqs.except(:controller, :action)
2122

22-
unless constraints.empty?
23-
reqs = reqs.empty? ? constraints.inspect : "#{reqs} #{constraints.inspect}"
24-
end
23+
reqs = endpoint
24+
reqs += " #{constraints.inspect}" unless constraints.empty?
2525

2626
verb = route.verb.source.gsub(/[$^]/, '')
27+
2728
{:name => route.name.to_s, :verb => verb, :path => route.path.spec.to_s, :reqs => reqs}
2829
end
2930

railties/test/application/route_inspect_test.rb

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -49,20 +49,28 @@ def test_inspect_routes_shows_root_route
4949
assert_equal ["root / pages#main"], output
5050
end
5151

52+
def test_inspect_routes_shows_dynamic_action_route
53+
@set.draw do
54+
match 'api/:action' => 'api'
55+
end
56+
output = @inspector.format @set.routes
57+
assert_equal [" /api/:action(.:format) api#:action"], output
58+
end
59+
5260
def test_inspect_routes_shows_controller_and_action_only_route
5361
@set.draw do
5462
match ':controller/:action'
5563
end
5664
output = @inspector.format @set.routes
57-
assert_equal [" /:controller/:action(.:format) "], output
65+
assert_equal [" /:controller/:action(.:format) :controller#:action"], output
5866
end
5967

6068
def test_inspect_routes_shows_controller_and_action_route_with_constraints
6169
@set.draw do
6270
match ':controller(/:action(/:id))', :id => /\d+/
6371
end
6472
output = @inspector.format @set.routes
65-
assert_equal [" /:controller(/:action(/:id))(.:format) {:id=>/\\d+/}"], output
73+
assert_equal [" /:controller(/:action(/:id))(.:format) :controller#:action {:id=>/\\d+/}"], output
6674
end
6775

6876
def test_rake_routes_shows_route_with_defaults

0 commit comments

Comments
 (0)