[英]rails3 working in sandbox environment
有沒有辦法在rails中打開/關閉sanbox環境for activerecord?
我正在開發一個rails應用程序。 我有一個案例,我需要從xls和csv文件加載數據。 表的每一行都單獨插入數據庫。 當在任何行中發現某些錯誤時,我需要取消所有先前插入的行並顯示錯誤消息。 完美的解決方案是“打開”沙盒環境以進行活動記錄,插入數據,然后如果每一行都正確,則使之前的插入“發生”,然后“關閉”沙箱環境。 在軌道中這可能嗎?
這取決於這些插入的時間。 如果您不介意在那段時間鎖定數據庫,可以使用事務:
MyModel.transaction do
objects.each do |object|
object.attributes = values
object.save!
end
end
事務本身會挽救所有異常,如果發生任何異常,則回滾所有先前的保存。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.