0

我正在尝试将调查结果保存到 csv 文件,因此每次调查完成时都会在文件中添加一个新行。我有将数据库行导出到 csv 并让您下载它的代码,但我不知道如何开始保存调查,或者这是否可能?我有一个设置了正确标题的 csv 文件。

4

2 回答 2

1

当您的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-10T14:03:34.780 回答
0

一个可能的解决方案是使用记录器。在您的应用程序控制器中:

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

这将导致在surveys.log您的log/文件夹中。

于 2012-12-10T13:53:52.703 回答