Here\'s the code:
render :file => @somedir + \"/blah.xml\"
...but the resulting MIME type is text/html when I check in FireBug. How do I
Take a look here. Basically you need to use render :xml => blah.to_xml
What about
headers["Content-Type"] = "text/xml"
? Hope that helps.
Actually there are two ways to set the content-type (I think this is what you mean by mime-type). You should use the second option, if it works for your Rails version.
class FileController < ApplicationController
def index
filename = 'some.xml'
extname = File.extname(filename)[1..-1]
mime_type = Mime::Type.lookup_by_extension(extname)
content_type = mime_type.to_s unless mime_type.nil?
# 1
#headers['Content-Type'] = content_type
#render :file => filename
# 2
render :file => filename, :content_type => content_type
end
end
Hope this helps!
Per http://api.rubyonrails.org/classes/Mime/Type.html, you could specify it like so:
render file: @somedir + "/blah.xml", mime_type: Mime::Type.lookup("text/xml")
render :file => @somedir + "/blah.xml", :content_type => Mime::XML