在rails中上传CSV的最佳选择?

ahm*_*met 0 csv ruby-on-rails ruby-on-rails-3 ruby-on-rails-3.1

创建表单的最佳选择是什么,您可以上传CSV文件并选择一个模型,例如(用户,公司,联系人),它获取CSV文件的内容并逐行插入到数据库中,跳过任何重复但符合模型中的验证?

Joe*_*der 7

我认为你的问题分为两部分:

  1. 上传文件
  2. 将CSV解析到表中.

要上传我喜欢Carrierwave的文件,Paperclip也很受欢迎.我会首先上传文件并将其存储在某处,以便您可以在DelayedJob(或其他异步过程)中进行解析.存储文件后,您可以启动作业以解析它并将其存储在表中,使用Ruby的内置CSV解析器应该可以很好地完成此任务(以前称为FasterCSV).

解析它的代码是这样的:

parsed_file = CSV.parse(imported_file, :headers => true, :skip_blanks => true)
Run Code Online (Sandbox Code Playgroud)

然后,您可以遍历parse_file中的每个"对象"并根据需要处理它.