0

我正在尝试使用 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

每当 User 对象的 update_attributes 失败时,我都希望回滚整个事务。我怎样才能做到这一点?

我正在使用 CouchDB。Rails、CouchRest 和使用 ActiveRecord。

4

1 回答 1

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"}
  ]
}
于 2012-11-01T08:04:14.100 回答