1
0
Fork 0
mirror of https://github.com/rails/rails.git synced 2022-11-09 12:12:34 -05:00

Can't cache url_options on a controller level

It fails if routes from to railties are called in one context,
for example: blog.posts_path and main_app.users_path
This commit is contained in:
Piotr Sarnacki 2012-03-02 18:47:15 +01:00
parent d08a7c1818
commit 0e94208a0f

View file

@ -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