我想實現一個csv上傳功能,而不使用寶石,如paperclip
。這裏的觀點:未定義的方法`original_filename'爲字符串
%h1 Add Users From CSV
= form_tag(:action => "upload",:multipart => true,:method => :post) do
= file_field_tag 'csv'
= submit_tag 'Upload'
而這裏的控制器:
def upload
csv_io = params[:csv]
File.open(Rails.root.join('public', 'uploads', csv_io.original_filename), 'wb') do |file|
file.write(csv_io.read)
end
redirect_to root_path, :notice => "Successfully uploaded csv!"
end
但我當我上傳了一個名爲data.csv
undefined method `original_filename' for "data.csv":String
我只是跟着官方的CSV此錯誤消息Rails指南,但它仍然有錯誤。任何人都可以建議一些解
注意:我只需要從csv文件讀取數據,並且不需要永久保存在服務器上。
我的記憶是,根據上傳文件的大小,它可能會以字符串或File對象的形式返回。你不需要回形針。你可能應該看看ActionDispatch :: Http :: UploadedFile。 –