Ruby on rails 发送csv文件的数据返回文件文本,而不是文件
你好!我想下载自动生成的文件qwerty.csv,但它只返回文本“12345”(无文件)。你能帮我吗 UIRuby on rails 发送csv文件的数据返回文件文本,而不是文件,ruby-on-rails,ruby-on-rails-3,ruby-on-rails-3.1,Ruby On Rails,Ruby On Rails 3,Ruby On Rails 3.1,你好!我想下载自动生成的文件qwerty.csv,但它只返回文本“12345”(无文件)。你能帮我吗 UI <script type="text/javascript"> function getCsv() { var ids = getSelectedRecordIds(); $.post('/payments/form_csv.csv', { ids: ids }, function(data) {}); } </script> function g
<script type="text/javascript">
function getCsv() {
var ids = getSelectedRecordIds();
$.post('/payments/form_csv.csv', { ids: ids }, function(data) {});
}
</script>
function getCsv() {
var ids = getSelectedRecordIds();
params = {ids: ids}
post_to_url("/payments/form_csv", params);
}
但是没有文件提示…哦,它可以在没有ajax的情况下工作,作为表单提交 本主题中存在相同的问题: 使表单成为非AJAX表单 我试过了…而且很有效 控制器
def form_csv
csv_string = CSV.generate do |csv|
csv << ["12345"]
end
respond_to do |format|
format.csv {
send_data csv_string, :type => 'text/csv; charset=utf-8; header=present', :disposition => "attachment; filename=qwerty.csv", :filename => "qwerty.csv"
}
end
end
def form_csv
csv = get_csv
send_csv(csv)
end
def get_csv
result = CSV.generate do |csv|
csv << ["12345"]
end
return result
end
def send_csv(csv)
send_data csv, :type => 'text/csv; charset=utf-8; header=present', :disposition => 'attachment; filename=payments.csv'
end
其中post_to_url-是方法的来源
话题
毕竟
protect_from_forgery :except => :form_csv
在控制器中,禁用支付csv请求的身份验证令牌
丑陋的决定,但它帮助了我…也许还有更正确的方法吗
Viren,
我试试看,谢谢 也许这只是一个如何注册应用程序/MIME类型的问题。在文件浏览器中单击*.csv文件时会发生什么情况?LibreOffice(或Excel)是否自动打开?未知/未注册的txt MIME类型可能始终显示在浏览器中。>>在文件浏览器中单击*.csv文件时会发生什么情况?LibreOffice(或Excel)是否自动打开?不幸的是,是的,Excel会自动打开它=(非常类似的主题(没有决定)——@AnDragFag我想这是一个过度智能的浏览器,在浏览器上显示CSV数据的情况。设置此选项并希望此帮助
config.action\u dispatch.x\u sendfile\u header=“x-sendfile”
protect_from_forgery :except => :form_csv