2017-02-16 1 views
1

У меня есть CSV, что я непосредственно импортируя с помощью:Rails 4: Импорт CSV и редактировать с помощью AJAX до подачи

CSV.foreach(file.path, headers: @weigh_in_cols) do |row| 
    hashed_row = row.to_hash.except!(nil) 
... 

Один столбец в CSV является scale_id и моя функция импорта пытается найти Client с соответствующий scale_id:

client = Client.find_by(scale_id: hashed_row["scale_id"]) 

и если клиент не существует, то я хотел бы быть предоставлена ​​возможность выбрать правильный client из списка clients.

Есть ли способ редактировать CSV при импорте, так что после выбора правильного client я могу обновить CSV надлежащим образом scale_id?

(Способ выбора пользователя выходит за рамки вопроса, я больше озабочен редактирования CSV при импорте)

ответ

1

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

+0

Thats отличная идея, не знаю, почему я не думал об этом –

Смежные вопросы