| Class | ActionController::Routing::Optimisation::PositionalArgumentsWithAdditionalParams |
| In: |
vendor/rails/actionpack/lib/action_controller/routing/optimisations.rb
|
| Parent: | PositionalArguments |
This case is mostly the same as the positional arguments case above, but it supports additional query parameters as the last argument
To avoid generating "localhost/?host=foo.example.com" we can‘t use this optimisation on routes without any segments
# File vendor/rails/actionpack/lib/action_controller/routing/optimisations.rb, line 112
112: def applicable?
113: super && route.segment_keys.size > 0
114: end
This case uses almost the same code as positional arguments, but add an args.last.to_query on the end
# File vendor/rails/actionpack/lib/action_controller/routing/optimisations.rb, line 106
106: def generation_code
107: super.insert(-2, '?#{args.last.to_query}')
108: end
# File vendor/rails/actionpack/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