以下是CSV导入程序。它运行得很好,但我想通过动态定义行来使其更加健壮。
如何替换属性" name"使用我在执行CSV之前定义的属性?
For example:- name: row[1] --> name: row[attribute]
上面的例子提示错误陈述"没有将String隐式转换为整数",这显然是正确的。
以下是代码。
import_attribute = import_dimension.import_attributes.first
attribute = import_attribute.name
CSV.foreach(Rails.root.join('tmp','uploads', csv_path), col_sep: import_source.csv_delimiter,
row_sep: :auto, skip_blanks: true, headers: false) do |row|
target.create company: self.import_source.company, code: row[0], name: row[1]
end
答案 0 :(得分:0)
您可以使用将属性映射到数组中位置的哈希值。
positions = {code: 0, name: 1}
然后
target.create company: self.import_source.company, code: row[positions[:code]], name: row[positions[:name]]