Разбор в рельсах с использованием CSV - PullRequest
1 голос
/ 18 марта 2012

Поэтому я пытаюсь проанализировать список электронных писем, разделенных запятой и введенных в форму, используя встроенную библиотеку CSV в rails 3.

Вот код:

@variable = params[:body]
@csv = CSV.parse(@variable, :col_sep => ",")
  @csv.each do |row|
    user = User.where(:email => row)

Однако вывод выглядит примерно так:


- - test@hi.com
  - ! ' hi@hi.com'

Поэтому каждая строка в @csv, которую я пытаюсь просмотреть, представляет собой полный список электронных писем.Как я могу их разделить?Спасибо!

1 Ответ

1 голос
/ 18 марта 2012

CSV :: parse возвращает массив массивов, если вы не передаете блок в качестве аргумента.Поэтому, когда вы перечисляете @csv, используя #each, строка аргумента будет массивом строк.Ни одна строка, как подсказывает ваш код.

Если адрес электронной почты является первым столбцом каждой строки в вашем CSV-файле, то вы замените

User.where(:email => row)

на

User.where(:email => row[0])

Не совсем понятно, какой формат у вашего CSV-файла.Если у вас есть несколько адресов электронной почты в строке или адрес электронной почты находится в другом столбце, вам придется соответствующим образом изменить код.

...