Rails 3 - 从text_area导入多行

时间:2012-06-18 10:01:09

标签: ruby-on-rails ruby-on-rails-3 fastercsv

从表单中的text_area导入多行的最佳方法是什么?

我尝试过快速使用FasterCSV,但得到NoM​​ethodError:

undefined method `pos' for {"name"=>"Carrots\r\nPeas\r\nRed Onion"}*
  def create
    FasterCSV.parse(params[:ingredient], {:headers => false, :quote_char => '"', :col_sep => ','}).each do |row_data|
          new_record = Ingredient.new('name' => row_data[0])
          new_record.save
      end

我想将最终的东西应用到具有多列的模型,因此col_sep

1 个答案:

答案 0 :(得分:1)

如果要在单行上使用FasterCSV.parse,则需要先获得简单的行。

首先拆分多行数据:

params[:ingredient][:name].split.each do |line|
  FasterCSV.parse(line, { ... options ... }).each do |row_data|
    ... etc ...

我可能会使用parse_line明确地传达我正在单行工作。