aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--actionpack/lib/action_dispatch/routing/redirection.rb4
-rw-r--r--railties/lib/rails/application/route_inspector.rb4
-rw-r--r--railties/test/application/route_inspect_test.rb9
3 files changed, 15 insertions, 2 deletions
diff --git a/actionpack/lib/action_dispatch/routing/redirection.rb b/actionpack/lib/action_dispatch/routing/redirection.rb
index 95c588c00a..3e2a9e232d 100644
--- a/actionpack/lib/action_dispatch/routing/redirection.rb
+++ b/actionpack/lib/action_dispatch/routing/redirection.rb
@@ -35,6 +35,10 @@ module ActionDispatch
def path(params, request)
block.call params, request
end
+
+ def inspect
+ "Redirect (#{status})"
+ end
end
class OptionRedirect < Redirect # :nodoc:
diff --git a/railties/lib/rails/application/route_inspector.rb b/railties/lib/rails/application/route_inspector.rb
index 1e5ce67a58..845c54f416 100644
--- a/railties/lib/rails/application/route_inspector.rb
+++ b/railties/lib/rails/application/route_inspector.rb
@@ -16,7 +16,7 @@ module Rails
class_name = app.class.name.to_s
if class_name == "ActionDispatch::Routing::Mapper::Constraints"
rack_app(app.app)
- elsif class_name !~ /^ActionDispatch::Routing/
+ elsif class_name == "ActionDispatch::Routing::Redirect" || class_name !~ /^ActionDispatch::Routing/
app
end
end
@@ -67,7 +67,7 @@ module Rails
@engines = Hash.new
end
- def format all_routes, filter = nil
+ def format(all_routes, filter = nil)
if filter
all_routes = all_routes.select{ |route| route.defaults[:controller] == filter }
end
diff --git a/railties/test/application/route_inspect_test.rb b/railties/test/application/route_inspect_test.rb
index 94871c3759..31af1ca6dc 100644
--- a/railties/test/application/route_inspect_test.rb
+++ b/railties/test/application/route_inspect_test.rb
@@ -152,5 +152,14 @@ module ApplicationTests
assert_no_match(/RackApp/, output.first)
assert_no_match(/\/sprockets/, output.first)
end
+
+ def test_redirect
+ output = draw do
+ match '/foo' => redirect("/bar")
+ match '/foo2' => redirect("/bar", status: 307)
+ end
+ assert_equal " foo /foo(.:format) Redirect (301)", output[0]
+ assert_equal "foo2 /foo2(.:format) Redirect (307)", output[1]
+ end
end
end