访问该页面
localhost:3000/download_me
调用控制器 foo 中的 download_me 控制器动作。
class foo < ApplicationController
def download_me
# a file is created here i.e. temp.csv in directory C:\
end
end
控制器将创建一个临时的csv文件,然后触发在访问页面的浏览器中下载。
我该如何做到这一点?
访问该页面
localhost:3000/download_me
调用控制器 foo 中的 download_me 控制器动作。
class foo < ApplicationController
def download_me
# a file is created here i.e. temp.csv in directory C:\
end
end
控制器将创建一个临时的csv文件,然后触发在访问页面的浏览器中下载。
我该如何做到这一点?
你是否有必要将临时文件存储在服务器上?如果是,可以使用以下代码(需要安装fastercsv):
require 'fastercsv'
FILE_PATH= "root/to/tmpfile.csv"
FasterCSV.open(FILE_PATH, "w") do |csv|
csv << 'add some data'
end
send_file file_path, :type=>'text/csv'
我建议你可能不需要存储该文件,因此只需将FasterCSV.open行替换为:
csv = FasterCSV.generate do |csv|
然后将CSV作为响应输出:
send_data csv, :type=> 'text/csv'