Я пытаюсь импортировать данные через 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