aboutsummaryrefslogblamecommitdiffstats
path: root/actionpack/lib/action_controller/metal/url_for.rb
blob: 333eeaeffb3d975b9f9ca9166147a12385c5e437 (plain) (tree)
1
2
3
4
5
6
7



                                 
                                      
 
                   







                                                             
                                                         
                        
           

                     
         
       
     
   
module ActionController
  module UrlFor
    extend ActiveSupport::Concern

    include AbstractController::UrlFor

    def url_options
      @_url_options ||= super.reverse_merge(
        :host => request.host_with_port,
        :protocol => request.protocol,
        :_path_segments => request.symbolized_path_parameters
      ).freeze

      if _routes.equal?(env["action_dispatch.routes"])
        @_url_options.dup.tap do |options|
          options[:script_name] = request.script_name.dup
          options.freeze
        end
      else
        @_url_options
      end
    end
  end
end