diff options
Diffstat (limited to 'actionpack/lib/action_controller/metal')
| -rw-r--r-- | actionpack/lib/action_controller/metal/url_for.rb | 23 | 
1 files changed, 12 insertions, 11 deletions
diff --git a/actionpack/lib/action_controller/metal/url_for.rb b/actionpack/lib/action_controller/metal/url_for.rb index 4504d9cd10..1177a703b3 100644 --- a/actionpack/lib/action_controller/metal/url_for.rb +++ b/actionpack/lib/action_controller/metal/url_for.rb @@ -26,19 +26,20 @@ module ActionController      include AbstractController::UrlFor      def url_options -      @_url_options ||= begin -        hash = super.reverse_merge( -          :host => request.host, -          :port => request.optional_port, -          :protocol => request.protocol, -          :_path_segments => request.symbolized_path_parameters -        ) +      @_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"]) -          hash[:script_name] = request.script_name.dup +      if _routes.equal?(env["action_dispatch.routes"]) +        @_url_options.dup.tap do |options| +          options[:script_name] = request.script_name.dup +          options.freeze          end - -        hash.freeze +      else +        @_url_options        end      end    end  | 
