2008-11-18 9 views

Odpowiedz

2

Spójrz na here. Zasadniczo musisz użyć render: xml => blah.to_xml

+0

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

34

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!

+0

Alternatywny sposób na uzyskanie typu MIME z nazwy pliku/ścieżki 'MIME :: Typ.type_for (" some.xml "). First.content_type' –

3

Co

headers["Content-Type"] = "text/xml" 

? Nadzieja, która pomaga.

16
render :file => @somedir + "/blah.xml", :content_type => Mime::XML 
Powiązane problemy