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

ユーザー オブジェクトの 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 に答える