diff options
author | David Heinemeier Hansson <david@loudthinking.com> | 2006-03-11 01:23:29 +0000 |
---|---|---|
committer | David Heinemeier Hansson <david@loudthinking.com> | 2006-03-11 01:23:29 +0000 |
commit | 1c16649b4895012eac76f3a7f22f3382b0034a97 (patch) | |
tree | 6674f67a9ea89529b02164a08e076e51b82a1bf1 /actionpack/lib/action_controller/request.rb | |
parent | 8152695b809aa47177ab5d5db43d93d8f55ee52a (diff) | |
download | rails-1c16649b4895012eac76f3a7f22f3382b0034a97.tar.gz rails-1c16649b4895012eac76f3a7f22f3382b0034a97.tar.bz2 rails-1c16649b4895012eac76f3a7f22f3382b0034a97.zip |
Added better support for using the same actions to output for different sources depending on the Accept header [DHH] Added Base#render(:xml => xml) that works just like Base#render(:text => text), but sets the content-type to text/xml and the charset to UTF-8 [DHH]
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@3838 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
Diffstat (limited to 'actionpack/lib/action_controller/request.rb')
-rwxr-xr-x | actionpack/lib/action_controller/request.rb | 19 |
1 files changed, 13 insertions, 6 deletions
diff --git a/actionpack/lib/action_controller/request.rb b/actionpack/lib/action_controller/request.rb index b55f63e618..16acc50011 100755 --- a/actionpack/lib/action_controller/request.rb +++ b/actionpack/lib/action_controller/request.rb @@ -54,13 +54,20 @@ module ActionController if @env['HTTP_X_POST_DATA_FORMAT'] case @env['HTTP_X_POST_DATA_FORMAT'].downcase.to_sym - when :yaml - @content_type = 'application/x-yaml' - when :xml - @content_type = 'application/xml' - end + when :yaml + @content_type = 'application/x-yaml' + when :xml + @content_type = 'application/xml' + end + end + + @content_type = Mime::Type.new(@content_type) + end + + def accepts + @accepts ||= (@env['HTTP_ACCEPT'].strip.blank? ? "*/*" : @env['HTTP_ACCEPT']).split(";").collect! do |mime_type| + Mime::Type.new(mime_type.strip) end - @content_type end # Returns true if the request's "X-Requested-With" header contains |