我正在尝试将调查结果保存到csv文件中,因此每次调查完成时,它都会向文件中添加新行。我有将数据库行导出到csv并让您下载它的代码,但我不知道如何在开始时包含保存调查,或者这是否可能?我设置了一个带有正确标题的csv文件。
发布于 2012-12-10 22:03:35
当您的create函数被调用时(在控制器中表单的提交指向的操作;在REST控制器上创建),您只需在其中添加一些自定义逻辑,将表单中的数据转换为您想要的csv结构。
Ruby内置了CSV模块,可以用来读写CSV文件。
所以你想要像下面这样的东西
require "csv"
CSV.open "output.csv", "a+" do |csv|
# example logic from another script how to populate the file
times.each do |key, value|
csv << [ key, value ]
end
end你只需要按你想要的方式定义行的结构,这个例子每行抛出两列。
编辑: a+使文件从末尾(新行)写入,而不是截断文件的原始w+。
发布于 2012-12-10 21:53:53
一种可能的解决方案是使用记录器。在您的应用程序控制器中:
def surveys
@@surveys_log ||= Logger.new("#{Rails.root}/log/surveys.log")
end您希望记录调查的任何位置:
surveys.info @survey.to_csv # you'll need to implement "to_csv" yourself这将在您的log/文件夹中生成一个surveys.log。
https://stackoverflow.com/questions/13802143
复制相似问题