diff options
author | Yehuda Katz <wycats@gmail.com> | 2009-03-23 12:07:34 -0700 |
---|---|---|
committer | Yehuda Katz <wycats@gmail.com> | 2009-03-23 12:07:34 -0700 |
commit | 34f058e082754bb726a4753fa26e8e8c082702c0 (patch) | |
tree | e6257c788360580559500b99c00bc2f49c8317c0 /actionpack/lib | |
parent | 4a93148bfe0194acb7bcafd6c830d5b86372be6a (diff) | |
download | rails-34f058e082754bb726a4753fa26e8e8c082702c0.tar.gz rails-34f058e082754bb726a4753fa26e8e8c082702c0.tar.bz2 rails-34f058e082754bb726a4753fa26e8e8c082702c0.zip |
Add a bunch of tests for various render :action, layout combinations
Diffstat (limited to 'actionpack/lib')
-rw-r--r-- | actionpack/lib/action_controller/new_base/layouts.rb | 9 | ||||
-rw-r--r-- | actionpack/lib/action_view/paths.rb | 3 |
2 files changed, 8 insertions, 4 deletions
diff --git a/actionpack/lib/action_controller/new_base/layouts.rb b/actionpack/lib/action_controller/new_base/layouts.rb index da516c0b85..3b47a76077 100644 --- a/actionpack/lib/action_controller/new_base/layouts.rb +++ b/actionpack/lib/action_controller/new_base/layouts.rb @@ -2,7 +2,7 @@ module ActionController module Layouts def render_to_string(options) if !options.key?(:text) || options.key?(:layout) - options[:_layout] = options.key?(:layout) ? _layout_for_option(options[:layout]) : _layout + options[:_layout] = options.key?(:layout) ? _layout_for_option(options[:layout]) : _default_layout end super @@ -13,7 +13,7 @@ module ActionController def _layout_for_option(name) case name when String then _layout_for_name(name) - when true then _layout + when true then _default_layout(true) when false then nil end end @@ -22,13 +22,14 @@ module ActionController view_paths.find_by_parts(name, formats, "layouts") end - def _layout + def _default_layout(require_layout = false) begin _layout_for_name(controller_path) rescue ActionView::MissingTemplate begin _layout_for_name("application") - rescue ActionView::MissingTemplate + rescue ActionView::MissingTemplate => e + raise e if require_layout end end end diff --git a/actionpack/lib/action_view/paths.rb b/actionpack/lib/action_view/paths.rb index d88296daa6..2a1ba3e895 100644 --- a/actionpack/lib/action_view/paths.rb +++ b/actionpack/lib/action_view/paths.rb @@ -42,6 +42,9 @@ module ActionView #:nodoc: end Template.new(path, self) + rescue ActionView::MissingTemplate => e + extension ||= [] + raise ActionView::MissingTemplate.new(self, "#{prefix}/#{path}.{#{extension.join(",")}}") end def find_template(original_template_path, format = nil) |