2012-05-29 36 views
0

我有一個API接受1個XML中的以下數據(對象)。 API將此XML轉換爲相應的對象並將其保存在數據庫中。如何在保存多個記錄的API調用中使用ActiveRecord事務

User 
--> Location 
--> Payment data 

Order 
--> Bill Item 

我想要實現的東西交易這樣

___.transaction do 

User.create 
--> Location.create 
--> Payment.create 

Order.create 
--> Bill Item.create 

end 

可以交易在這種情況下使用?

+0

當然你可以。 – alexkv

回答

1

當然,你可以在ActiveRecord裏面做。只需引發異常以回滾事務。

User.transaction do 
    User.create 
    Location.create 
    Payment.create 

    Order.create 
    Bill Item.create 
end 

檢查出更多的細節 http://api.rubyonrails.org/classes/ActiveRecord/Transactions/ClassMethods.html

+0

謝謝Chamnap。 Q - 創建用戶後鎖定不會被釋放嗎? – Pykih

+1

這不是關於鎖。數據庫事務僅僅意味着它被保存了全部或者全部沒有被保存(原子性)。 http://en.wikipedia.org/wiki/Atomicity_%28database_systems%29 – Chamnap

相關問題