This case is mostly the same as the positional arguments case above, but it supports additional query parameters as the last argument

Methods
Public Instance methods
applicable?()

To avoid generating "localhost/?host=foo.example.com" we can‘t use this optimisation on routes without any segments

     # File lib/action_controller/routing/optimisations.rb, line 112
112:         def applicable?
113:           super && route.segment_keys.size > 0 
114:         end
generation_code()

This case uses almost the same code as positional arguments, but add an args.last.to_query on the end

     # File lib/action_controller/routing/optimisations.rb, line 106
106:         def generation_code
107:           super.insert(-2, '?#{args.last.to_query}')
108:         end
guard_condition()
     # File lib/action_controller/routing/optimisations.rb, line 100
100:         def guard_condition
101:           "(!defined?(default_url_options) || default_url_options.blank?) && defined?(request) && request && args.size == #{route.segment_keys.size + 1} && !args.last.has_key?(:anchor) && !args.last.has_key?(:port) && !args.last.has_key?(:host)"
102:         end