diff options
Diffstat (limited to 'actionpack/lib/action_controller/routing/route_set.rb')
-rw-r--r-- | actionpack/lib/action_controller/routing/route_set.rb | 17 |
1 files changed, 4 insertions, 13 deletions
diff --git a/actionpack/lib/action_controller/routing/route_set.rb b/actionpack/lib/action_controller/routing/route_set.rb index 83903aff85..30995297f3 100644 --- a/actionpack/lib/action_controller/routing/route_set.rb +++ b/actionpack/lib/action_controller/routing/route_set.rb @@ -208,6 +208,9 @@ module ActionController named_routes.clear @combined_regexp = nil @routes_by_controller = nil + # This will force routing/recognition_optimization.rb + # to refresh optimisations. + @compiled_recognize_optimized = nil end def install_helpers(destinations = [ActionController::Base, ActionView::Base], regenerate_code = false) @@ -379,19 +382,7 @@ module ActionController end def recognize_path(path, environment={}) - routes.each do |route| - result = route.recognize(path, environment) and return result - end - - allows = HTTP_METHODS.select { |verb| routes.find { |r| r.recognize(path, :method => verb) } } - - if environment[:method] && !HTTP_METHODS.include?(environment[:method]) - raise NotImplemented.new(*allows) - elsif !allows.empty? - raise MethodNotAllowed.new(*allows) - else - raise RoutingError, "No route matches #{path.inspect} with #{environment.inspect}" - end + raise "Not optimized! Check that routing/recognition_optimisation overrides RouteSet#recognize_path." end def routes_by_controller |