0
下面是一個CSV導入器。它的工作完美,但我會通過動態定義行來使其更加健壯。動態定義CSV屬性
如何將屬性「name」替換爲在執行CSV之前定義的屬性?
For example:- name: row[1] --> name: row[attribute]
上面的例子提示錯誤「沒有將字符串隱式轉換爲整數」,這顯然是真的。
以下是代碼。
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
您可以創建一個CSV列屬性配置列表,在你的應用程序中的散列。但只有在以下情況下才有效:您的導入CSV中的標題爲?和「標題名稱是否唯一併且不會從CSV更改爲CSV? – Surya 2014-10-09 07:30:56
例如:一個CSV中的標題:「公司代碼,公司名稱」和另一個CSV中的標題:「代碼,名稱」不起作用。 – Surya 2014-10-09 07:32:18