我已經在VPS上部署了我的Rails應用程序。我有一個上傳csv文件並根據文件行創建記錄的功能。我在ActiveAdmin中使用此功能。Rails - 無法從VPS上的csv文件創建記錄
上傳按鈕的點擊我呼籲通過Ajax調用import_csv
方法。
的方法如下:
collection_action :import_csv, method: :post do
CSV.foreach(params[:file].path, headers: true) do |row|
item = Item.where(code: row["code"]).first || Item.new
row["status"] = row["status"].downcase if row["status"]
row["created_by"] = current_user.get_name
row["modified_by"] = current_user.get_name
item.attributes = row.to_hash
item.save!
end
render text: { success: "Successfully imported" }.to_json
end
那麼成功,我得到了警覺"Successfully imported"
,如果有任何錯誤,我得到它在Ajax調用的錯誤塊設定的"Something went wrong."
警報。
現在的問題是:
我無法通過的項目模型CSV文件創建記錄。我的CSV文件包含近70k行。我能夠創建高達7500的記錄。 如果我在CSV文件中放入7501行,我得到的警報爲"Something went wrong"
。
此外在日誌中我看不到任何錯誤。事實上,如果有7501行,我甚至看不到import_csv
方法的請求。
這隻發生在VPS上。在本地開發和生產模式下,我能夠創建所有70k記錄。
任何人都可以幫忙嗎?我如何跟蹤實際導致錯誤的內容?
編輯:
在CSV文件時,我可以把7500行和創建記錄。下次我再次上傳一個包含7500行的文件併成功創建記錄。
在同一時間,我無法將大於7500的行放入文件中以創建記錄。
在'日誌/ production.log'檢查服務器日誌,應該有一個例外。 – Jeiwan
我提到過,在日誌中沒有看到任何異常的問題。 '也在日誌中我看不到任何錯誤。事實上,如果有7501行,我甚至不能看到命中import_csv方法的請求。# –
2建議:1)嘗試將包含block的整個'CSV.foreach'包裝在'begin..rescue..end ',趕上例外並將其打印到日誌中。 2)使用CSV創建7500個項目,然後轉到rails控制檯並嘗試手動創建一個。 – Jeiwan