Rails:ZIP文件显示在浏览器中而不是下载

Nic*_*oul 3 ruby-on-rails-3

我的控制器发送一个ZIP文件:

def index
  respond_to do |format|
    format.html  { render :text => open("tmp/test1.zip", "rb").read }
  end
end
Run Code Online (Sandbox Code Playgroud)

问题: ZIP是以浏览器中显示的文本形式接收的.
我希望它能够下载.

注意:我写的format.html是因为当我写作时format.zip我得到了uninitialized constant Mime::ZIP.这可能是问题的一部分.

van*_*yak 9

您可以注册自己的mime类型:

Mime::Type.register "application/zip", :zip

def index
  respond_to do |format|
    format.html  { ... } #do whatever you need for html
    format.csv  { ... } #do whatever you need for csv
    format.zip  { send_file 'your_file.zip' }
  end
end
Run Code Online (Sandbox Code Playgroud)

看看这里:

http://weblog.rubyonrails.org/2006/12/19/using-custom-mime-types