Я запускаю rails 3.0.1 с ruby 1.9.2p290 и пытаюсь проанализировать файл CSV с помощью CSV (поскольку, насколько я понимаю, CSV сейчас использует более быстрый код CSV).
Я следил за хорошей записью при настройке этого для более быстрого CSV, и мне пришлось лишь внести незначительные изменения, чтобы заставить его работать (изменение требует CSV вместо более быстрого CSV и т. Д.)
Я могуПолучить CSV-файл для загрузки в таблицу с правильным количеством отсчитанных столбцов, но это все - одна строка независимо от того, сколько строк.Например, если в моем CSV-файле было три строки с тремя столбцами, мой import_table мог бы показать номер столбца 0,1,2 три раза без увеличения номера строки.Таким образом, он распознает конец каждой строки моего CSV-файла, но не увеличивает счетчик строк.Что мне не хватает?
Мой csvcontroller выглядит так:
require 'csv'
class Admin::CsvController < ApplicationController
def import
end
def upload
table = ImportTable.new :original_path => params[:upload][:csv].original_filename,
:import_type => params[:type]
uploaded_file = params[:upload][:csv].read
CSV.parse(uploaded_file) do |cells|
row_index = 0
column_index = 0
cells.each do |cell|
table.import_cells.build :column_index => column_index, :row_index => row_index, :contents => cell
column_index += 1
end
row_index += 1
end
table.save
redirect_to import_table_path(table)
end
end
Я пытался использовать .readline вместо .read, но это открыло еще один шарик воска.