Oto kod:plik trójwymiarowa z typów MIME w szynach
render :file => @somedir + "/blah.xml"
... ale wynikowy typ MIME jest text/html, gdy sprawdzam w Firebug. Jak określić typ MIME w tym przypadku?
Oto kod:plik trójwymiarowa z typów MIME w szynach
render :file => @somedir + "/blah.xml"
... ale wynikowy typ MIME jest text/html, gdy sprawdzam w Firebug. Jak określić typ MIME w tym przypadku?
Spójrz na here. Zasadniczo musisz użyć render: xml => blah.to_xml
W rzeczywistości istnieją dwa sposoby ustawiania typu zawartości (myślę, że to właśnie masz na myśli przez typ mime). Powinieneś użyć drugiej opcji, jeśli działa dla twojej wersji Rails.
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
Mam nadzieję, że to pomoże!
Alternatywny sposób na uzyskanie typu MIME z nazwy pliku/ścieżki 'MIME :: Typ.type_for (" some.xml "). First.content_type' –
Co
headers["Content-Type"] = "text/xml"
? Nadzieja, która pomaga.
render :file => @somedir + "/blah.xml", :content_type => Mime::XML
Dzięki, ale prośba nie ma rozszerzenia i myślę, że responds_to używa rozszerzenia do określenia formatu. Czy się mylę? – user38684