Ruby on rails 如何将数据附加到csv文件

Ruby on rails 如何将数据附加到csv文件,ruby-on-rails,ruby,ruby-on-rails-3,Ruby On Rails,Ruby,Ruby On Rails 3,我想将数据附加到csv文件中。我使用html表单从用户那里获取数据。我的当前代码将数据添加到csv文件中,但它不会追加数据。因此,当用户输入他们的详细信息时,点击寄存器按钮,然后删除先前添加的数据,并在该位置插入新数据。那么,如何添加新数据,以便它保存在下一行中,并将其余数据保留在适当的位置呢 这就是我正在做的 full_name = params["full_name"] email = params["email"] phone = params["phone"] organization

我想将数据附加到csv文件中。我使用html表单从用户那里获取数据。我的当前代码将数据添加到csv文件中,但它不会追加数据。因此,当用户输入他们的详细信息时,点击寄存器按钮,然后删除先前添加的数据,并在该位置插入新数据。那么,如何添加新数据,以便它保存在下一行中,并将其余数据保留在适当的位置呢

这就是我正在做的

full_name = params["full_name"]
email = params["email"]
phone = params["phone"]
organization = params["organization"]
job = params["job"]
diet = params["diet"]
address = params["address"]
code = params["code"]
city = params["city"]
cost_pool = params["cost_pool"]

CSV.open("participants_info.csv", "wb") do |csv|
  csv << [full_name, email, phone, organization, job, diet, address, code, city, cost_pool]
end
full_name=params[“full_name”]
email=params[“email”]
电话=参数[“电话”]
组织=参数[“组织”]
作业=参数[“作业”]
饮食=参数[“饮食”]
地址=参数[“地址”]
代码=参数[“代码”]
城市=参数[“城市”]
成本池=参数[“成本池”]
CSV.open(“参与者信息”CSV,“wb”)do | CSV|
csv
``“”仅写,如果文件存在,则从文件末尾开始,否则
创建用于写入的新文件

``一个+“”读写,从 如果文件存在,则创建一个新文件以进行读取和 书写

使用
CSV.open(“参与者信息”CSV,“a+”)

以附加模式(ab)打开文件

File.open('filename','a'){outfile|
CSV::Writer.generate(outfile)do | CSV|

csv要附加文件,请使用以下代码:


CSV.open(“参与者| info.CSV”,“ab”)做| CSV |

你使用的是什么版本的Ruby?如果它是1.9.x,而且由于FasterCSV是内置的CSV库,你可以做
需要“CSV”
然后
CSV.open(“参与者| info.CSV”,“a”)
它将附加到文件中。只使用“a”更好。“a+”会误导您,因为您无法真正从中读取。此外,如果OP使用的是Ruby 1.8.7,则使用“a”如果不起作用,您将得到以下错误
ArgumentError:“mode”必须是“r”、“rb”、“w”或“wb”
@an顺便问一下,这些模式意味着什么?@Andrei r==read,rb==read binary,w==write,wb==write binary。二进制/非二进制的区别仅在windows上有意义
CSV.open("participants_info.csv", "ab") do |csv|
#...
end
File.open('filename', 'a'){ |outfile|
  CSV::Writer.generate(outfile) do |csv|
    csv << ['c1', nil, '', '"', "\r\n", 'c2']
  end
}