假設我有一個包含要存儲在db.I中的數據的excel表格,我使用roo gem併成功插入了excel表格中的數據。現在我試圖驗證。 假設我的excel表爲:將excel表格中的數據存儲到數據庫中
s.no name age
1 abc 12
2 def qwer
3 asd 23
當我上傳此片材中,2行數據是輥支持和1,3-行的數據存儲在DB中。 我想要做的是如果回滾操作發生,那麼其餘的記錄不應該存儲在db.i.e行3數據不應該存儲爲第2行roll-backed.Any幫助表示讚賞。謝謝。
更新: 這是我在控制器代碼:
def fetch_excel_data
ex = Roo::Excel.new("/desktop/abc.xls")
ex.default_sheet = ex.sheets[0]
2.upto(ex.last_row) do |line|
name = ex.cell(line,2)
age = ex.cell(line,ex.last_column)
byebug
@product = Product.create(:name => name,:age => age)
@product.save!
flash[:success] = "data is stored successfully"
end
end
我想回滾整個Excel工作表不僅records..Is有沒有辦法這樣做呢?
你可以顯示你正在使用的代碼來解析和插入工作表嗎? – Nobita
如果任何記錄無效並且不會保存更多記錄,則可以中斷循環 –