From caa8a005202b267b75baf521d5f613f3a2bce600 Mon Sep 17 00:00:00 2001 From: David Heinemeier Hansson Date: Sun, 17 Sep 2006 18:10:25 +0000 Subject: Added that respond_to blocks will automatically set the content type to be the same as is requested [DHH] git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@5131 5ecf4fe2-1ee6-0310-87b1-e25e094e27de --- actionpack/lib/action_controller/mime_responds.rb | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) (limited to 'actionpack/lib/action_controller/mime_responds.rb') diff --git a/actionpack/lib/action_controller/mime_responds.rb b/actionpack/lib/action_controller/mime_responds.rb index 07bbbb4732..6c721f4ba2 100644 --- a/actionpack/lib/action_controller/mime_responds.rb +++ b/actionpack/lib/action_controller/mime_responds.rb @@ -108,7 +108,7 @@ 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}" }) + blocks.update ext => %(Proc.new { render :action => "\#{action_name}.r#{ext}", :content_type => Mime::#{ext.to_s.upcase} }) end def initialize(block_binding) @@ -129,7 +129,10 @@ module ActionController #:nodoc: @order << mime_type if block_given? - @responses[mime_type] = block + @responses[mime_type] = Proc.new do + eval "response.content_type = Mime::#{mime_type.to_sym.to_s.upcase}", @block_binding + block.call + end else if source = DEFAULT_BLOCKS[mime_type.to_sym] @responses[mime_type] = eval(source, @block_binding) -- cgit v1.2.3