假设我有一个包含要存储在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
如果任何记录无效并且不会保存更多记录,则可以中断循环 –