diff options
author | Jamis Buck <jamis@37signals.com> | 2005-06-15 13:20:17 +0000 |
---|---|---|
committer | Jamis Buck <jamis@37signals.com> | 2005-06-15 13:20:17 +0000 |
commit | 14c378cc7fd364ea5d96e13746345a29341cd845 (patch) | |
tree | 6b302c43fec40f5ca9a3f72e75b411338eaec53a | |
parent | 280c224b43f8a8d42ebfbe104e94d3895972856d (diff) | |
download | rails-14c378cc7fd364ea5d96e13746345a29341cd845.tar.gz rails-14c378cc7fd364ea5d96e13746345a29341cd845.tar.bz2 rails-14c378cc7fd364ea5d96e13746345a29341cd845.zip |
render(:template) applies a layout by default. render("foo/bar") works with a layout again.
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@1424 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
-rw-r--r-- | actionpack/CHANGELOG | 4 | ||||
-rw-r--r-- | actionpack/lib/action_controller/layout.rb | 4 | ||||
-rw-r--r-- | actionpack/test/controller/new_render_test.rb | 12 | ||||
-rw-r--r-- | actionpack/test/controller/render_test.rb | 14 |
4 files changed, 16 insertions, 18 deletions
diff --git a/actionpack/CHANGELOG b/actionpack/CHANGELOG index b965822efc..e6c7f58098 100644 --- a/actionpack/CHANGELOG +++ b/actionpack/CHANGELOG @@ -1,5 +1,7 @@ *SVN* +* render("foo/bar") works with a layout again + * Fixed double-singularization on scaffolded pagination call (Address would be turned into Addres) #1216, #1404 [nilsga] * Removed the require hack used by functional testing to work around an earlier bug in rake. @@ -24,7 +26,7 @@ * Make sure the benchmarking render method always returns the output of the render. -* render(:action) and render() are the only two calls that default to using a layout. All other render calls assume :layout => false. This also fixes send_file, which was applying a layout if one existed for the current action. +* render(:action), render(:template) and render() are the only three calls that default to using a layout. All other render calls assume :layout => false. This also fixes send_file, which was applying a layout if one existed for the current action. * verify with :redirect_to won't redirect if a redirect or render has already been performed #1350 diff --git a/actionpack/lib/action_controller/layout.rb b/actionpack/lib/action_controller/layout.rb index 237e274173..0494ebc456 100644 --- a/actionpack/lib/action_controller/layout.rb +++ b/actionpack/lib/action_controller/layout.rb @@ -219,8 +219,8 @@ module ActionController #:nodoc: private def render_with_a_layout_options(options) - return options unless options.is_a?(Hash) - if options.values_at(:text, :file, :template, :inline, :partial, :nothing).compact.empty? + return { :template => options } unless options.is_a?(Hash) + if options.values_at(:text, :file, :inline, :partial, :nothing).compact.empty? options else { :layout => false }.merge(options) diff --git a/actionpack/test/controller/new_render_test.rb b/actionpack/test/controller/new_render_test.rb index 9ec3f283cf..47db7136f4 100644 --- a/actionpack/test/controller/new_render_test.rb +++ b/actionpack/test/controller/new_render_test.rb @@ -94,6 +94,10 @@ class NewRenderTestController < ActionController::Base render :inline => "Hello: <%= params[:name] %>", :layout => nil end + def render_with_explicit_template + render "test/hello_world" + end + def rescue_action(e) raise end private @@ -103,7 +107,8 @@ class NewRenderTestController < ActionController::Base "rendering_nothing_on_layout", "render_text_hello_world", "partial_only", "partial_only_with_layout", "accessing_params_in_template", - "accessing_params_in_template_with_layout" + "accessing_params_in_template_with_layout", + "render_with_explicit_template" "layouts/standard" when "builder_layout_test" "layouts/builder" @@ -249,4 +254,9 @@ class NewRenderTest < Test::Unit::TestCase get :accessing_params_in_template_with_layout, :name => "David" assert_equal "<html>Hello: David</html>", @response.body end + + def test_render_with_explicit_template + get :render_with_explicit_template + assert_response :success + end end diff --git a/actionpack/test/controller/render_test.rb b/actionpack/test/controller/render_test.rb index 98d279055d..2dab50c9df 100644 --- a/actionpack/test/controller/render_test.rb +++ b/actionpack/test/controller/render_test.rb @@ -88,20 +88,6 @@ end TestController.template_root = File.dirname(__FILE__) + "/../fixtures/" Fun::GamesController.template_root = File.dirname(__FILE__) + "/../fixtures/" -class TestLayoutController < ActionController::Base - layout "layouts/standard" - - def hello_world - end - - def hello_world_outside_layout - end - - def rescue_action(e) - raise unless ActionController::MissingTemplate === e - end -end - class RenderTest < Test::Unit::TestCase def setup @request = ActionController::TestRequest.new |