Rails 3 - импорт нескольких строк из text_area

Каков наилучший подход для импорта нескольких строк из text_area в форме?

Я пробовал быстрый bodge с использованием FasterCSV, но получить NoMethodError:

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 ответ

Решение

Если вы хотите использовать FasterCSV.parse в отдельных строках сначала нужно получить простые строки.

Сначала разделите многострочные данные:

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

Я мог бы использовать parse_line чтобы явно общаться, я работаю над одной строкой.

Другие вопросы по тегам