[英]Saving form results to a CSV - Rails
我正在嘗試將調查結果保存到csv文件中,因此,每次調查完成時,都會在文件中添加新行。 我有將數據庫行導出到csv並允許您下載的代碼,但是我不知道如何合並保存調查的開始,或者是否有可能? 我有一個帶有正確標題的csv文件。
調用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 +處截斷文件。
一種可能的解決方案是使用記錄器。 在您的應用程序控制器中:
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
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.