diff options
author | Godfrey Chan <godfreykfc@gmail.com> | 2014-11-23 01:46:51 -0800 |
---|---|---|
committer | Godfrey Chan <godfreykfc@gmail.com> | 2014-11-23 01:46:51 -0800 |
commit | 23b21f6182e36c05c6b2a240c0fb824ae828465e (patch) | |
tree | 3f30ce54d3adfbb3642eb258de1eb9ace40cfd6a /actionpack/lib/action_dispatch/journey | |
parent | 8e73abbda8d3a55459bac728530606fdf69468f5 (diff) | |
download | rails-23b21f6182e36c05c6b2a240c0fb824ae828465e.tar.gz rails-23b21f6182e36c05c6b2a240c0fb824ae828465e.tar.bz2 rails-23b21f6182e36c05c6b2a240c0fb824ae828465e.zip |
Don't show the warning if we're already raising the error anyway
If the route set is empty, or if none of the routes matches with a score > 0,
there is no point showing the deprecation message because we are already be
raising the `ActionController::UrlGenerationError` mentioned in the warning.
In this case it is the expected behavior and the user wouldn't have to take any
actions.
Diffstat (limited to 'actionpack/lib/action_dispatch/journey')
-rw-r--r-- | actionpack/lib/action_dispatch/journey/formatter.rb | 21 |
1 files changed, 13 insertions, 8 deletions
diff --git a/actionpack/lib/action_dispatch/journey/formatter.rb b/actionpack/lib/action_dispatch/journey/formatter.rb index 62bd4a33f2..177f586c0e 100644 --- a/actionpack/lib/action_dispatch/journey/formatter.rb +++ b/actionpack/lib/action_dispatch/journey/formatter.rb @@ -81,14 +81,8 @@ module ActionDispatch if named_routes.key?(name) yield named_routes[name] else - if name - ActiveSupport::Deprecation.warn <<-MSG.squish - You are trying to generate the URL for a named route called - #{name.inspect} but no such route was found. In the future, - this will result in an `ActionController::UrlGenerationError` - exception. - MSG - end + # Make sure we don't show the deprecation warning more than once + warned = false routes = non_recursive(cache, options) @@ -98,6 +92,17 @@ module ActionDispatch break if score < 0 hash[score].sort_by { |i, _| i }.each do |_, route| + if name && !warned + ActiveSupport::Deprecation.warn <<-MSG.squish + You are trying to generate the URL for a named route called + #{name.inspect} but no such route was found. In the future, + this will result in an `ActionController::UrlGenerationError` + exception. + MSG + + warned = true + end + yield route end end |