diff options
Diffstat (limited to 'actionpack/lib')
-rw-r--r-- | actionpack/lib/abstract_controller/rendering.rb | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/actionpack/lib/abstract_controller/rendering.rb b/actionpack/lib/abstract_controller/rendering.rb index 40cac40ba7..ac407bda5e 100644 --- a/actionpack/lib/abstract_controller/rendering.rb +++ b/actionpack/lib/abstract_controller/rendering.rb @@ -160,11 +160,20 @@ module AbstractController name = (options[:_template_name] || options[:action] || action_name).to_s options[:_prefix] ||= _prefix if (options.keys & [:partial, :file, :template]).empty? + details = _normalize_details(options) + options[:_template] ||= with_template_cache(name) do - find_template(name, { :formats => formats }, options) + find_template(name, details, options) end end + def _normalize_details(options) + details = { :formats => formats } + details[:formats] = Array(options[:format]) if options[:format] + details[:locale] = Array(options[:locale]) if options[:locale] + details + end + def find_template(name, details, options) view_paths.find(name, details, options[:_prefix], options[:_partial]) end |