【发布时间】:2013-11-14 07:57:52
【问题描述】:
我正在尝试在不使用 paperclip 等 gem 的情况下实现 csv 上传功能。这是视图:
%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 的 csv 时收到此错误消息
undefined method `original_filename' for "data.csv":String
我刚刚按照官方 Rails 指南进行操作,但仍然出现错误。任何人都可以提出一些解决方案吗?
注意:我只需要从 csv 文件中读取数据,它不需要永久保存在服务器上。
【问题讨论】:
-
我的记忆是,根据上传文件的大小,它可能会以字符串或文件对象的形式返回。你不需要回形针。不过,您可能应该查看 ActionDispatch::Http::UploadedFile。
标签: ruby-on-rails ruby upload