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

Здесь код:

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

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

Ответы

Ответ 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