我正在尝试导入CSV文件并将导入分配给当前用户。因此,它会将user_id添加到csv import的每一行。
我遗失了一些东西,因为它仍然找不到用户并将其添加到行...
控制器:
def import
Inventory.import(params[:file], current_user.id)
redirect_to root_url, notice: "Inventory imported."
end
方式:
class Inventory < ApplicationRecord
belongs_to :user
def self.import(file, user_id)
allowed_attributes = [ "user_id", "id","description","part_number","price","created_at","updated_at", "alternate_part_number", "condition_code", "qty", "mfg_code", "serial_number", "part_comments"]
spreadsheet = open_spreadsheet(file)
header = spreadsheet.row(1)
(2..spreadsheet.last_row).each do |i|
row = Hash[[header, spreadsheet.row(i)].transpose]
inventory = find_by_id(row["id"]) || new
inventory.attributes = row.to_hash.select { |k,v| allowed_attributes.include? k }
inventory.save!
end
end
我最终得到了这个错误: import error ruby
感谢您的帮助!!
答案 0 :(得分:1)
(...)
inventory = (...)
inventory.user_id = user_id
inventory.save!
然而,你最好发送给用户而不是它的id:
控制器:
Inventory.import(params[:file], current_user)
模型:
def import(file, user)
inventory = Inventory.new
inventory.attributes = {}
inventory.user = user
inventory.save!
end