如何将 Rails 中的用户输入存储到 csv 文件

How to store user input in Rails to a csv file

我从 index.html.erb 中的几个问题中收集用户输入,并将它们存储在以逗号分隔的字符串中。我想将他们的答案添加到我的 CSV 文件中,并将其存储在我的 Rails 应用程序的 public 目录中。我怎样才能做到这一点?我需要发出 AJAX 请求并存储它吗?这是我目前所拥有的:

//will print out all answers from form and log them
var exportInfo = "";
document.getElementById('submit').addEventListener('click', function() {
  var newAdjustorInfo = document.getElementsByClassName('adjustorInfo');
  for(var i = 0; i<newAdjustorInfo.length; i++){
  exportInfo = exportInfo + newAdjustorInfo[i].value + ", ";
  writeToFile(exportInfo);


}

//This should write to my file, but it does not
function writeToFile(data){
    var fso = new ActiveXObject("Scripting.FileSystemObject");
    var fh = fso.OpenTextFile("public/update.csv", 8);
    fh.WriteLine(data);
    fh.Close();
}

如果有帮助,我可以使用带有此代码的 erb 标签写入我的文件:

<% require "csv" %>

<% CSV.open("public/update.csv", "ab") do |csv| %>
<% csv << ["did it work?"] %>
  <% csv << ["did it work?"] %>
<% end %>

});

为什么不用 remote: true 做一个 form_tag?然后,当您的用户单击提交按钮时,它只会提交他们对您定义的控制器操作的响应。然后在该控制器操作中:

CSV.open("public/update.csv", "ab") do |csv|
  csv << params[:foo]
  csv << params[:bar]
end