aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--actionpack/CHANGELOG2
-rw-r--r--actionpack/lib/action_controller/mime_responds.rb5
-rw-r--r--actionpack/test/controller/mime_responds_test.rb17
3 files changed, 22 insertions, 2 deletions
diff --git a/actionpack/CHANGELOG b/actionpack/CHANGELOG
index 6756e271bf..703bb23948 100644
--- a/actionpack/CHANGELOG
+++ b/actionpack/CHANGELOG
@@ -1,5 +1,7 @@
*SVN*
+* respond_to :html doesn't assume .rhtml. #6281 [Hampton Catlin]
+
* Fixed some deprecation warnings in ActionPack [Rick Olson]
* assert_select_rjs decodes escaped unicode chars since the Javascript generators encode them. #6240 [japgolly]
diff --git a/actionpack/lib/action_controller/mime_responds.rb b/actionpack/lib/action_controller/mime_responds.rb
index 80464ffdcd..ff07c3c12e 100644
--- a/actionpack/lib/action_controller/mime_responds.rb
+++ b/actionpack/lib/action_controller/mime_responds.rb
@@ -108,8 +108,9 @@ module ActionController #:nodoc:
class Responder #:nodoc:
DEFAULT_BLOCKS = [:html, :js, :xml].inject({}) do |blocks, ext|
- blocks.update ext => %(Proc.new { render :action => "\#{action_name}.r#{ext}", :content_type => Mime::#{ext.to_s.upcase} })
- end
+ template_extension = (ext == :html ? '' : ".r#{ext}")
+ blocks.update ext => %(Proc.new { render :action => "\#{action_name}#{template_extension}", :content_type => Mime::#{ext.to_s.upcase} })
+ end
def initialize(block_binding)
@block_binding = block_binding
diff --git a/actionpack/test/controller/mime_responds_test.rb b/actionpack/test/controller/mime_responds_test.rb
index 9118d9e553..d2cb4f1d84 100644
--- a/actionpack/test/controller/mime_responds_test.rb
+++ b/actionpack/test/controller/mime_responds_test.rb
@@ -303,4 +303,21 @@ class MimeControllerTest < Test::Unit::TestCase
get :html_xml_or_rss, :format => "rss"
assert_equal "RSS", @response.body
end
+
+ def test_render_action_for_html
+ @controller.instance_eval do
+ def render(*args)
+ unless args.empty?
+ @action = args.first[:action]
+ end
+ response.body = @action
+ end
+ end
+
+ get :using_defaults
+ assert_equal "using_defaults", @response.body
+
+ get :using_defaults, :format => "xml"
+ assert_equal "using_defaults.rxml", @response.body
+ end
end