首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将表单结果保存到CSV - Rails

问将表单结果保存到CSV - Rails
EN

Stack Overflow用户
提问于 2012-12-10 21:42:26
回答 2查看 425关注 0票数 0

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

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-12-10 22:03:35

当您的create函数被调用时(在控制器中表单的提交指向的操作;在REST控制器上创建),您只需在其中添加一些自定义逻辑,将表单中的数据转换为您想要的csv结构。

Ruby内置了CSV模块,可以用来读写CSV文件。

所以你想要像下面这样的东西

代码语言:javascript
复制
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+。

票数 1
EN

Stack Overflow用户

发布于 2012-12-10 21:53:53

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

代码语言:javascript
复制
def surveys
  @@surveys_log ||= Logger.new("#{Rails.root}/log/surveys.log")
end

您希望记录调查的任何位置:

代码语言:javascript
复制
surveys.info @survey.to_csv # you'll need to implement "to_csv" yourself

这将在您的log/文件夹中生成一个surveys.log。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13802143

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档