irr*_*ncu 2 ruby csv ruby-on-rails
我想让管理员通过csv文件将联系人导入数据库.因此我使用ruby csv库和以下代码片段:
if request.post? && params[:file].present?
inputFile = params[:file].read
CSV.foreach(inputFile) do |row|
#save row here
end
end
Run Code Online (Sandbox Code Playgroud)
但是在CSV.foreach(inputFile) do |row|我得到一个"Errno :: ENAMETOOLONG - 文件名太长"-error并且错误消息显示它使用整个csv文件作为文件名.
有谁知道它为什么这样做?
BTW:csv文件使用','和'/ n'作为分隔符.
irr*_*ncu 11
感谢其他答案的输入,我自己找到了解决方案.问题是.read将文件转换为包含内容的字符串,但CSV.foreach()需要文件名或路径.使用.path相反解决了问题:
if request.post? && params[:file].present?
inputPath = params[:file].path
CSV.foreach(inputPath) do |row|
#save row here
end
end
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5606 次 |
| 最近记录: |