method

define_generate_prefix

rails latest stable - Class: ActionDispatch::Routing::Mapper::Mapping::Base
define_generate_prefix(app, name)
private

No documentation available.

# File actionpack/lib/action_dispatch/routing/mapper.rb, line 659
          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