rails - 如何让客户端选择下载文件的位置

时间:2015-12-10 07:53:16

标签: javascript ruby-on-rails angularjs csv

我创建了一个通过rails代码导出csv文件的选项,它看起来像这样:  def to_csv     company = current_company     @opportunities = company.opportunities.company_visible.not_rejected

CSV.open("/Users/yarden/Downloads/file6.csv", "wb") do |csv|
  csv << @opportunities.attribute_names
  @opportunities.all.each do |opportunity|
    csv << opportunity.attributes.values
  end
end

并且,我在客户端添加了一个btn(使用Angular和js)来实现此功能。 但是,我的问题是 - 当他试图下载csv文件时,我怎么能让客户选择在他的电脑中找到文件的位置? 现在我的测试我在电脑上写了一个特定的根。

提前致谢!

1 个答案:

答案 0 :(得分:0)

此代码仅在服务器上本地保存文件。如果您想让用户下载该文件,我建议您将此CSV保存到tempfile,然后使用控制器中的以下方法将其发送给用户

// Controller action is called 'download_file'
def download_file
    // Generate file
    send_file my_generated_csv
end

然后,用户可以通过单击将他路由到此操作的链接来下载文件。您可以在docs

中找到有关send_file方法的更多信息