diff --git a/actionpack/lib/action_dispatch/routing/polymorphic_routes.rb b/actionpack/lib/action_dispatch/routing/polymorphic_routes.rb
index <HASH>..<HASH> 100644
--- a/actionpack/lib/action_dispatch/routing/polymorphic_routes.rb
+++ b/actionpack/lib/action_dispatch/routing/polymorphic_routes.rb
@@ -168,10 +168,7 @@ module ActionDispatch
         end
 
         def build_named_route_call(records, inflection, options = {})
-          unless records.is_a?(Array)
-            record = extract_record(records)
-            route  = []
-          else
+          if records.is_a?(Array)
             record = records.pop
             route = records.map do |parent|
               if parent.is_a?(Symbol) || parent.is_a?(String)
@@ -180,6 +177,9 @@ module ActionDispatch
                 ActiveModel::Naming.route_key(parent).singularize
               end
             end
+          else
+            record = extract_record(records)
+            route  = []
           end
 
           if record.is_a?(Symbol) || record.is_a?(String)
Convert unless/else into if/else.