2012-11-01 86 views
0

我試圖使用Rails,CouchRest更新對象集合中的參數。使用CouchRest更新對象數組,Rails

這是即時通訊做目前,

class User 
    property :country 
    property :some_flag 
end 

@users = User.by_country(:key => 'country-name') 
@users.each do |user| 
    user.update_attributes({:some_flag => 'true'}) 
end 

每當update_attributes方法失敗User對象,我想整個事務回滾。我怎樣才能做到這一點?

正在使用CouchDB。 Rails,CouchRest和不是使用ActiveRecord。

回答

0

CouchDB中沒有明確支持事務,但有一些所謂的「批量更新」,這可能會有所幫助:

http://wiki.apache.org/couchdb/HTTP_Bulk_Document_API#Modify_Multiple_Documents_With_a_Single_Request

實例數據的更新:

{ 
    "all_or_nothing": true, 
    "docs": [ 
    {"_id": "0", "_rev": "1-62657917", "integer": 10, "string": "10"}, 
    {"_id": "1", "_rev": "2-1579510027", "integer": 2, "string": "2"}, 
    {"_id": "2", "_rev": "2-3978456339", "integer": 3, "string": "3"} 
    ] 
}