db.Iに格納するデータを含むexcelシートを持っていて、excelシートのデータを正常に挿入したと仮定します。ここで検証しようとしています。私のExcelシート想定 :私はこのシートをアップロードするときexcelシートのデータをrorに格納
s.no name age
1 abc 12
2 def qwer
3 asd 23
を、2行のデータは、ロール・バックし、1,3行のデータがDBに格納されています。 私がやろうとしているのは、ロールバック操作が発生し、残りのレコードがdb.i.eに格納されてはならないということです。行3のデータは、行2がロールバックされたときに格納されるべきではありません。
更新: ここでは、コントローラの私のコードです:私は、全体のバックロールする
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
だけでなく、シートをエクセルそうする方法はありrecords..Is?
任意のレコードをさらにレコードをのような何かを保存しないこと有効でない場合は、ループを破ることができる
シートの解析と挿入に使用しているコードを表示できますか? – Nobita
さらなるレコードを保存しないレコードが有効でない場合は、ループを解除することができます –