diff options
author | Javan Makhmali <javan@javan.us> | 2016-06-14 17:23:44 -0400 |
---|---|---|
committer | Javan Makhmali <javan@javan.us> | 2016-06-15 18:25:18 -0400 |
commit | 2451177f37aa252513ac372d24cba6a3c44c054b (patch) | |
tree | 92dc144312995a07a49062ba5d12b2914518402d /actionview/lib/action_view/digestor.rb | |
parent | 7980b31bc6dd123a0635f470998362a602b66e25 (diff) | |
download | rails-2451177f37aa252513ac372d24cba6a3c44c054b.tar.gz rails-2451177f37aa252513ac372d24cba6a3c44c054b.tar.bz2 rails-2451177f37aa252513ac372d24cba6a3c44c054b.zip |
Fix digesting templates with identical logical names when requesting a format other than the first default
Diffstat (limited to 'actionview/lib/action_view/digestor.rb')
-rw-r--r-- | actionview/lib/action_view/digestor.rb | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/actionview/lib/action_view/digestor.rb b/actionview/lib/action_view/digestor.rb index b91e61da18..bc42b5dae1 100644 --- a/actionview/lib/action_view/digestor.rb +++ b/actionview/lib/action_view/digestor.rb @@ -15,7 +15,7 @@ module ActionView # * <tt>partial</tt> - Specifies whether the template is a partial def digest(name:, finder:, dependencies: []) dependencies ||= [] - cache_key = ([ name ].compact + dependencies).join('.') + cache_key = [ name, finder.rendered_format, dependencies ].flatten.compact.join('.') # this is a correctly done double-checked locking idiom # (Concurrent::Map's lookups have volatile semantics) @@ -39,8 +39,11 @@ module ActionView def tree(name, finder, partial = false, seen = {}) logical_name = name.gsub(%r|/_|, "/") - if finder.disable_cache { finder.exists?(logical_name, [], partial) } - template = finder.disable_cache { finder.find(logical_name, [], partial) } + format = finder.rendered_format + formats = finder.formats.without(format).unshift(format) + + if finder.disable_cache { finder.exists?(logical_name, [], partial, [], formats: formats) } + template = finder.disable_cache { finder.find(logical_name, [], partial, [], formats: formats) } if node = seen[template.identifier] # handle cycles in the tree node |