簡體   English   中英

rails3在沙箱環境中工作

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM