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

时间:2018-04-16 13:52:04

标签: javascript ruby-on-rails-3 csv

我从index.html.erb中的几个问题中收集用户输入,并将它们存储在以逗号分隔的字符串中。我想将他们的答案添加到我的CSV文件中,并将其存储在我的Rails应用程序的公共目录中。我怎样才能做到这一点?我是否需要发出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 %>

});

1 个答案:

答案 0 :(得分:1)

为什么不使用form_tag制作remote: true?然后,当您的用户单击“提交”按钮时,它只会将您的响应提交给您定义的控制器操作。然后在那个控制器动作中:

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