ArgumentError: Неверные аргументы! для рельсов CSV импорт - PullRequest
0 голосов
/ 05 апреля 2020

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

Моя ошибка происходит в контроллере.

  def import
    Downtown.import(params[:file])
    redirect_to @downtown, notice: "Products imported."  
  end

Когда я ставлю точку останова прямо перед импортом, Я смотрю в params[:file], и это дает мне.

[7] pry(#<DowntownsController>)> params[:file]
=> #<ActionDispatch::Http::UploadedFile:0x00007fbfeb871fd8
 @content_type="text/csv",
 @headers="Content-Disposition: form-data; name=\"file\"; filename=\"downtowns.csv\"\r\nContent-Type: text/csv\r\n",
 @original_filename="downtowns.csv",
 @tempfile=#<File:/var/folders/dz/106qqn2s25d8tbrty82wt77r0000gr/T/RackMultipart20200405-7860-1ezpt61.csv>>

Что касается остальной части моего кода, я нахожусь на

На мой взгляд

= form_tag import_downtowns_path, multipart: true do
  = file_field_tag :file
  = submit_tag "import"

Мой маршрут

  resources :downtowns do
    collection { post :import }
  end

Моя модель

  def import(file)
    CSV.foreach(file.path, headers: true) do |row|
      Downtown.create! row.to_hash
    end
  end
...