aboutsummaryrefslogtreecommitdiffstats
path: root/actionpack/lib/action_controller/metal/url_for.rb
blob: ef1071bb3d4efd9f4a376c3caac8994d6fa78405 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
module ActionController
  module UrlFor
    extend ActiveSupport::Concern

    include AbstractController::UrlFor

    def url_options
      @_url_options ||= begin
        options = {}
        if _routes.equal?(env["action_dispatch.routes"])
          options[:script_name] = request.script_name.dup
        end

        super.merge(options).reverse_merge(
          :host => request.host_with_port,
          :protocol => request.protocol,
          :_path_segments => request.symbolized_path_parameters
        ).freeze
      end
    end
  end
end