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
чтобы явно общаться, я работаю над одной строкой.