我的Rails应用程序中有文件上传,我想解析CSV文件,假设上传正常。您可以在下面看到评论,指出我想要读取CSV文件的行。我怎样才能做到这一点?我使用了carrierwave来上传文件。
我这样安装了
mount_uploader :file, LCFileUploader
这是我目前的代码
require 'CSV'
class LCFilesController < ApplicationController
def new
authorize! :create, :lc_file
@lc_file = LCFile.new
end
def create
authorize! :create, :lc_file
puts params
@lc_file = LCFile.new(params[:lc_file])
@lc_file.user_id = current_user.id
if @lc_file.save
#PARSE CSV HERE TO PRINT OUT THE ROWS OF THE CSV FILE
CSV.foreach(@lc_file.file.path) do |row|
puts row
end
redirect_to lc_path, :notice => 'New lc created!'
else
render :new
end
end
end
我收到此错误:
undefined method `find_all_by_team_id' for #<Class:0x007fe14c40d848>
答案 0 :(得分:1)
您可以使用CSV class:
puts CSV.read(@lc_file.file.path)
或一次一行:
CSV.foreach(@lc_file.file.path) do |row|
puts row
end
除了CSV生成之外,还有一些问题:
lcfiles_path
或lcfile_path(@lc_file)
之类的东西。运行rake routes
(与运行rails控制台的方式相同),查看所有可用路由的列表。现在如果你还有问题,我建议发布另一个问题,因为这个问题主要是关于CSV的生成,应该使用我在这个答案开头发布的代码来解决。