【发布时间】:2009-10-23 00:14:54
【问题描述】:
我有一个页面,用户可以在其中将数据导入网站。可以从 excel 复制粘贴到文本区域,也可以上传 .csv 文件。
控制器检查是否已上传 csv - 如果是,它会处理它,否则它将处理粘贴的内容。 (假设用户现在只会选择一个选项)。
复制和粘贴部分完美运行,但是,当我尝试处理上传的 csv 文件时出现问题:
我得到错误:
无法转换 ActionController::UploadedTempfile 成字符串
#events_controller
def invite_save
@event = Event.find(params[:id])
if params[:guest_list_csv]
lines = parse_csv_file(params[:guest_list_csv])
else
#csv file uploaded
lines = params[:guest_list_paste]
end
if lines.size > 0
lines.each do |line|
new_user(line.split)
end
flash[:notice] = "List processing was successful."
else
flash[:error] = "List data processing failed."
end
end
private
def parse_csv_file(path_to_csv)
lines = []
require 'fastercsv'
FasterCSV.foreach(path_to_csv) do |row|
lines << row
end
lines
end
def new_user(line)
#code to create new user would go here
end
我实际上是在尝试以一个流畅的动作上传和处理 csv,而不是让用户按下“处理”按钮。
【问题讨论】:
-
能否同时显示视图和模型文件
标签: ruby-on-rails paperclip fastercsv