使用CouchRest,Rails更新对象数组

时间:2012-11-01 02:48:39

标签: ruby-on-rails couchdb couchrest

我尝试使用Rails,CouchRest更新对象集合中的参数。

这就是我目前正在做的事情,

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。使用ActiveRecord的Rails,CouchRest和

1 个答案:

答案 0 :(得分: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"}
  ]
}