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:
parent
d08a7c1818
commit
0e94208a0f
1 changed files with 12 additions and 11 deletions
|
@ -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
|
||||
|
|
Loading…
Reference in a new issue