Разбор удаленного csv на Rails 4

#ruby-on-rails #csv #heroku

#ruby-on-rails #csv #heroku

Вопрос:

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

Я хочу создать новый объект для каждой строки в csv. Синтаксический анализ CSV отлично работал раньше при разработке при использовании временного файла. Но я должен изменить это для Heroku.

Что не так в том, что мой код для удаленного csv анализируется правильно?

 def self.import_open_order(file_url)

    open(file_url) do |file|
      CSV.parse(self.parse_headers(file.read), headers: true) do |row|
...
  

Комментарии:

1. Является ли файл csv настолько большим, что вы не хотите передавать его в приложение при нажатии? Если нет, просто добавьте его в корневую папку своих приложений и зафиксируйте, а затем нажмите. Затем вы можете получить его из приложения и избежать проблемы с URL.

2. Это новый файл csv, загружаемый каждый день в течение недели

Ответ №1:

Это исправило

  def self.import_open_order(file)
    imported_file = open(file)
      CSV.parse(self.parse_headers(imported_file), headers: true) do |row|
  

С тех пор open(file).class = Tempfile … Я смог просто создать временный файл и передать его через CSV.parse

Клянусь, я уже пробовал это, но теперь это работает!