如何将 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
我从 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