0

我正在尝试允许用户将 CSV 文件导入应用程序的数据库。我一直在关注导入 csv 和 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
4

1 回答 1

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

请注意,您将覆盖user_idCSV 中现有的 -columns,但如果我理解正确,这是预期的行为。

于 2013-01-15T06:31:31.777 回答