我正在尝试允许用户将CSV文件导入应用程序的数据库。我一直关注importing csv and excel上的铁轨演员。我不确定如何传入excel或csv文件中找不到的参数。
例如,我正在使用设计进行身份验证,而不是用户必须在正在上传的文件上输入user_id,我希望将user_id设置为current_user.id。我怎么能这样做?
我的代码如下:
模型导入文件的方法
def self.import(file)
CSV.foreach(file.path, headers: true) do |row|
Gear.create! row.to_hash
end
end
控制器操作
def import
Gear.import(params[:file])
redirect_to :back, notice: "Gears Uploaded"
end
答案 0 :(得分:2)
一种选择是将用户ID传递到import
- 方法,如下所示:
型号:
def self.import(file, user_id)
CSV.foreach(file.path, headers: true) do |row|
Gear.create! row.to_hash.merge(user_id: user_id)
end
end
控制器:
def import
Gear.import(params[:file], current_user.id)
redirect_to :back, notice: "Gears Uploaded"
end
请注意,您将覆盖CSV中的现有user_id
- 列,但如果我理解正确,这是预期的行为。