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



                                 
                                      
 
                   
                                            

                                       





                                                             
                                                         
                        
           

                     
         
       
 
     
   
module ActionController
  module UrlFor
    extend ActiveSupport::Concern

    include AbstractController::UrlFor

    def url_options
      @_url_options ||= super.reverse_merge(
        :host => request.host,
        :port => request.optional_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