Автономные вложения с использованием CouchRest - PullRequest
1 голос
/ 30 сентября 2011

Может ли кто-нибудь привести пример использования CouchRest для хранения автономного вложения в CouchDB?

Это для не Rails-проекта.Так что то, что не связано с CouchRest :: Model, было бы неплохо.

спасибо, Мано

1 Ответ

0 голосов
/ 30 июля 2012

Похоже, что GitHub CouchRest Вики-страница UsageOverview содержит несколько основных примеров в разделе «Приложения»:

contents = "<html><body>If you're happy and you know it, clap your hands.</body></html>"
@db.put_attachment(doc, "happy.html", contents, :content_type => "text/html")
# => {"ok"=>true, "id"=>"e0d70033da0fad3707fed320bd7e0770", "rev"=>"2-20635570c75e8b20f7a73fd1538f318d"}

# NOTE: The document is not updated automatically with the attachment information
pp doc.to_hash
# {"_id"=>"e0d70033da0fad3707fed320bd7e0770",
#  "_rev"=>"1-cbb61d1f90f7c01b273737702265b6c8",
#  "key"=>"value",
#  "another key"=>"another value"}

# If you try to fetch the attachment without getting the new state of the document, you will fail

@db.fetch_attachment(doc, "happy.html")
# => RestClient::ResourceNotFound: 404 Resource Not Found: {"error":"not_found","reason":"Document is missing attachment"}

doc = @db.get(doc["_id"])

pp doc.to_hash
# {"_id"=>"e0d70033da0fad3707fed320bd7e0770",
#  "_rev"=>"2-20635570c75e8b20f7a73fd1538f318d",
#  "key"=>"value",
#  "another key"=>"another value",
#  "_attachments"=>
#   {"happy.html"=>
#     {"content_type"=>"text/html",
#      "revpos"=>2,
#      "digest"=>"md5-q3MreM1aJgfSLHGrJLdg4g==",
#      "length"=>75,
#      "stub"=>true}}}

@db.fetch_attachment(doc, "happy.html")
=> "<html><body>If you're happy and you know it, clap your hands.</body></html>"

См. Остальную часть страницы для получения дополнительных примеров (включаяудаление вложений).

...