2011-09-30 4 views
1

Quelqu'un peut-il me donner un exemple d'utilisation de CouchRest pour stocker une pièce jointe autonome dans CouchDB?Pièces jointes autonomes utilisant CouchRest

Ceci est pour un projet non Rails. Donc quelque chose qui n'implique pas CouchRest :: Model serait bien.

grâce, mano

+0

J'ai trouvé la réponse! Je me baladais avec le module auxiliaire attachments.rb (dans CouchRest source). La méthode réelle à utiliser est put_attachment dans database.rb .... numéro de ligne 313. –

Répondre

0

Il ressemble à la CouchRest github UsageOverview wiki page a quelques exemples de base, dans la section "Pièces jointes":

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>" 

Voir le reste de la page pour plus d'exemples (y compris la suppression pièces jointes).

Questions connexes