【发布时间】:2019-12-30 05:12:54
【问题描述】:
我想在导入时将current_user.id 添加到 CSV 导入的每个字段中。
我已成功导入 CSV 文件,但当我尝试以下操作时:
型号:
def self.import(file)
CSV.foreach(file.path, headers: true) do |row|
product_hash = row.to_hash
product = Product.find_or_create_by!(sku: product_hash['sku'])
product.update_attributes!(product_hash)
end
end
控制器:
def create
user = current_user
Product.import(params[:product][:file], user_id: user.id)
respond_to do |format|
format.html { redirect_to '/', notice: 'Products successfully imported.' }
end
end
表格:
<%= form_for @product, url: product_upload_create_path do |f| %>
<%= f.file_field :file %>
<%= f.submit %>
<% end %>
(也尝试为用户添加隐藏字段)
错误:
ArgumentError(参数数量错误(给定 2,预期 1)):
因为我不能调用模型中的 current_user(或者,从我所读到的,这是一个坏主意)。我还能如何将 current_user.id 附加到每个 CSV 导入行?
【问题讨论】:
标签: ruby-on-rails ruby csv