在rails中呈现MIME类型的文件

use*_*684 17 ruby ruby-on-rails render mime-types

这是代码:

render :file => @somedir + "/blah.xml"
Run Code Online (Sandbox Code Playgroud)

...但是当我签入FireBug时,生成的MIME类型是text/html.在这种情况下如何指定MIME类型?

bli*_*ger 34

实际上有两种方法来设置内容类型(我认为这是你的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
Run Code Online (Sandbox Code Playgroud)

希望这可以帮助!


ger*_*rit 16

render :file => @somedir + "/blah.xml", :content_type => Mime::XML
Run Code Online (Sandbox Code Playgroud)


srb*_*ert 2

看看这里。基本上你需要使用 render :xml => blah.to_xml