From 87e8b162463f13bd50d27398f020769460a770e3 Mon Sep 17 00:00:00 2001 From: Matt Jones Date: Sat, 7 Mar 2009 13:32:46 -0600 Subject: fix HTML fallback for explicit templates [#2052 state:resolved] Signed-off-by: Joshua Peek --- actionpack/lib/action_controller/layout.rb | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) (limited to 'actionpack/lib/action_controller') diff --git a/actionpack/lib/action_controller/layout.rb b/actionpack/lib/action_controller/layout.rb index ccd9605562..6ec0c1b304 100644 --- a/actionpack/lib/action_controller/layout.rb +++ b/actionpack/lib/action_controller/layout.rb @@ -198,7 +198,7 @@ module ActionController #:nodoc: # is called and the return value is used. Likewise if the layout was specified as an inline method (through a proc or method # object). If the layout was defined without a directory, layouts is assumed. So layout "weblog/standard" will return # weblog/standard, but layout "standard" will return layouts/standard. - def active_layout(passed_layout = nil) + def active_layout(passed_layout = nil, options = {}) layout = passed_layout || default_layout return layout if layout.respond_to?(:render) @@ -208,7 +208,7 @@ module ActionController #:nodoc: else layout end - find_layout(active_layout, default_template_format) if active_layout + find_layout(active_layout, default_template_format, options[:html_fallback]) if active_layout end private @@ -220,8 +220,8 @@ module ActionController #:nodoc: nil end - def find_layout(layout, format) #:nodoc: - view_paths.find_template(layout.to_s =~ /layouts\// ? layout : "layouts/#{layout}", format, false) + def find_layout(layout, format, html_fallback=false) #:nodoc: + view_paths.find_template(layout.to_s =~ /layouts\// ? layout : "layouts/#{layout}", format, html_fallback) rescue ActionView::MissingTemplate raise if Mime::Type.lookup_by_extension(format.to_s).html? end @@ -234,7 +234,7 @@ module ActionController #:nodoc: when NilClass, TrueClass active_layout if action_has_layout? && candidate_for_layout?(:template => default_template_name) else - active_layout(layout) + active_layout(layout, :html_fallback => true) end else active_layout if action_has_layout? && candidate_for_layout?(options) -- cgit v1.2.3