module ActionDispatch::Routing::Mapper::Base
def define_generate_prefix(app, name)
def define_generate_prefix(app, name) _route = @set.named_routes.get name _routes = @set _url_helpers = @set.url_helpers script_namer = ->(options) do prefix_options = options.slice(*_route.segment_keys) prefix_options[:script_name] = "" if options[:original_script_name] if options[:_recall] prefix_options.reverse_merge!(options[:_recall].slice(*_route.segment_keys)) end # We must actually delete prefix segment keys to avoid passing them to next url_for. _route.segment_keys.each { |k| options.delete(k) } _url_helpers.public_send("#{name}_path", prefix_options) end app.routes.define_mounted_helper(name, script_namer) app.routes.extend Module.new { def optimize_routes_generation?; false; end define_method :find_script_name do |options| if options.key? :script_name super(options) else script_namer.call(options) end end } end