コードは次のとおりです。
render :file => @somedir + "/blah.xml"
...しかし、FireBug をチェックインすると、結果の MIME タイプは text/html になります。この場合、MIME タイプを指定するにはどうすればよいですか?
コードは次のとおりです。
render :file => @somedir + "/blah.xml"
...しかし、FireBug をチェックインすると、結果の MIME タイプは text/html になります。この場合、MIME タイプを指定するにはどうすればよいですか?
実際には、コンテンツタイプを設定する方法は2つあります(これがmime-typeの意味だと思います)。Railsバージョンで機能する場合は、2番目のオプションを使用する必要があります。
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
お役に立てれば!
render :file => @somedir + "/blah.xml", :content_type => Mime::XML
どうですか
headers["Content-Type"] = "text/xml"
?お役に立てば幸いです。
こちらをご覧ください。基本的に、render:xml=>blah.to_xmlを使用する必要があります
http://api.rubyonrails.org/classes/Mime/Type.htmlに従って、次のように指定できます。
render file: @somedir + "/blah.xml", mime_type: Mime::Type.lookup("text/xml")