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