问题在于下面的代码(“routes.rb”)。
post 'download_csr' do
file_name = File.dirname(__FILE__) + '/cert.csr'
File.open(file_name, 'w') do |f|
f.write params[:csr]
end
send_file file_name, :disposition => 'attachment'
erb :load_certificate, :locals => { :csr => 'cert.csr' }
end
流程如下:用户单击表单上的按钮,然后将文件写入并下载到本地系统,然后转到另一个页面(即“load_certificate.erb”)。
然而,真正发生的是,文件下载后,不会转到下一页但如果我评论“发送文件”,它将转到下一页那么如何解决这个问题呢谢谢!
还有一件事:在进入下一页之前,最好确保文件已经下载(因为当send_file弹出一个窗口时,用户可以选择“取消”)。某些超时机制在这里可能不起作用。
最佳答案
@汤的链接是一个很好的阅读。关于sinatra,send_file
calls halt
,它结束请求(在本例中是通过发送状态和文件)。Nothing will be processed after a halt
。
关于ruby-on-rails - Ruby Sinatra:重定向页面不起作用?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/20339513/