2017-09-22 34 views
0

我想上傳下列CSV文件:丟失或雜散報價時上傳CSV文件(CSV :: MalformedCSVError)

1,Order,"{\"customer_name\":\"Jack\",\"customer_address\":\"Trade St.\",\"status\":\"unpaid\"}" 
2,Order,"{\"customer_name\":\"Sam\",\"customer_address\":\"Gecko St.\",\"status\":\"unpaid\"}" 
1,Product,"{\"name\":\"Laptop\",\"price\":2100,\"stock_levels\":29}" 
1,Order,"{\"status\":\"paid\",\"ship_date\":\"2017-01-18\",\"shipping_provider\":\"DHL\"}" 
2,Product,"{\"name\":\"Microphones\",\"price\":160,\"stock_levels\":1500}" 
1,Invoice,"{\"order_id\":7,\"product_ids\":[1,5,3],\"status\":\"unpaid\",\"total\":2500}" 
1,Invoice,"{\"status\":\"paid\"}" 

當我嘗試要上傳,我得到以下錯誤: CSV: :MalformedCSVError在CustomersController#進口

這裏的第三行特別突出顯示:

class Customer < ApplicationRecord 
    def self.import(file) 
    CSV.foreach(file.path, headers: true) do |row| 
     Customer.create! row.to_hash 
    end 
    end 

這是我在控制器製造以及進口:

def import 
    Customer.import(params[:file]) 
    redirect_to customer_path, notice: "Customer Added Successfully" 
    end 

我知道這個問題可能來自引用語法錯誤,但我沒有看到任何錯誤的引號我有第一行。一切似乎都是按順序的,我相信其他一切都是正確的,所以我有點難住。謝謝你的幫助!

回答

0

我換成\"'和它的工作:

1,Order,"{'customer_name':'Jack','customer_address':'Trade St.','status':'unpaid'}" 

我同意這是有點怪。希望解決方案將爲你工作。

+0

如果你正在創建CSV文件,你可以使用base64編碼JSON,所以你不需要改變\「 – alebian

+0

哇,就是這樣,現在得到一個新的,但不同的錯誤,說未知的屬性,但我會爲此付出一點努力,但我沒有看到爲什麼「以前不工作」的原因,但非常感謝。 – kalex

+0

@alebian我會研究一下,謝謝 – kalex