url_for.rb 623 字节
Newer Older
1 2 3 4
module ActionController
  module UrlFor
    extend ActiveSupport::Concern

5
    include AbstractController::UrlFor
6

7
    def url_options
8
      @_url_options ||= super.reverse_merge(
9 10
        :host => request.host,
        :port => request.optional_port,
11 12 13 14 15 16
        :protocol => request.protocol,
        :_path_segments => request.symbolized_path_parameters
      ).freeze

      if _routes.equal?(env["action_dispatch.routes"])
        @_url_options.dup.tap do |options|
17
          options[:script_name] = request.script_name.dup
18
          options.freeze
19
        end
20 21
      else
        @_url_options
22
      end
23
    end
24

25
  end
26
end