Подтвердить что ты не робот

Файл рендеринга с типом MIME в рельсах

Здесь код:

render :file => @somedir + "/blah.xml"

... но полученный MIME-тип - text/html, когда я проверяю FireBug. Как указать тип MIME в этом случае?

4b9b3361

Ответ 1

На самом деле есть два способа установить тип содержимого (я думаю, это то, что вы подразумеваете под типом mime). Вы должны использовать второй вариант, если он работает для вашей версии 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

Надеюсь, это поможет!

Ответ 2

render :file => @somedir + "/blah.xml", :content_type => Mime::XML

Ответ 3

Что насчет

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

? Надеюсь, что это поможет.

Ответ 4

Посмотрите здесь. В основном вам нужно использовать render: xml = > blah.to_xml