我有這樣的解析一個CSV文件:CSV導入問題
csv_file = CSV.parse(
file.read(),
headers: true,
header_converters: :symbol
)
它的工作原理,但我想指定的編碼類型,所以我補充一下:{encoding: 'UTF-8'}
到如下讀取方法:
csv_file = CSV.parse(
file.read({encoding: 'UTF-8'}),
headers: true,
header_converters: :symbol
)
但我得到這個錯誤:不能將哈希轉換爲整數
我只是不能看到什麼是錯的。我已經檢查了文檔,但是它說你可以像這樣傳遞編碼,但它確實需要文件作爲第一個參數,所以它可能會在那裏停滯,但是肯定是因爲它已經知道什麼文件正在讀取它應該沒問題。
我該如何解決這個問題?
更新:
我已經更新到以下幾點:
def import
if params[:import_coasters]
file = params[:import_coasters][:file]
Park.import_from_csv(file)
def self.import_from_csv(file)
Park.destroy_all
和
csv_file = CSV.parse(
File.read(file, {encoding: 'UTF-8'}),
headers: true,
header_converters: :symbol
)
,但我得到了以下錯誤:
不能轉換ActionDispatch :: Http :: UploadedFile轉換爲字符串
你是如何創建文件變量?爲了測試它,我無法重新創建您的問題。 – joofsh
你能指點那些說你可以用這種方式#read的文檔嗎 –