aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--actionpack/lib/action_dispatch/routing/route_set.rb4
1 files changed, 3 insertions, 1 deletions
diff --git a/actionpack/lib/action_dispatch/routing/route_set.rb b/actionpack/lib/action_dispatch/routing/route_set.rb
index cc86890c0a..d58293d93b 100644
--- a/actionpack/lib/action_dispatch/routing/route_set.rb
+++ b/actionpack/lib/action_dispatch/routing/route_set.rb
@@ -35,7 +35,7 @@ module ActionDispatch
prepare_params!(params)
# Just raise undefined constant errors if a controller was specified as default.
- unless controller = controller(params, @raise_on_name_error)
+ controller = controller(params, @raise_on_name_error) do
return [404, {'X-Cascade' => 'pass'}, []]
end
@@ -57,6 +57,8 @@ module ActionDispatch
if params && params.key?(:controller)
controller_param = params[:controller]
controller_reference(controller_param)
+ else
+ yield
end
rescue NameError => e
raise ActionController::RoutingError, e.message, e.backtrace if raise_on_name_error