2010-04-20 4 views
2

Je suis en train de construire une application rails au-dessus de couchdb et j'ai décidé d'essayer les gemmes couch_potato et simply_stored comme elles semblent ajouter une fonctionnalité intéressante au-dessus du reste api et mettre le développement couchdb 'sur les rails'. D'après ce que je peux voir, SimlyStored/Couch fonctionne au-dessus de la couche couch_potato, donc d'après ce que je comprends, les fonctionnalités de base de couch_potato devraient être accessibles à partir d'une classe qui comprend SimplyStored :: Couch.Ajout de vues personnalisées en utilisant couch_potato et simplement_stored?

Cependant, je n'ai pas pu utiliser le mot-clé afficher afin de créer des vues personnalisées dans un modèle qui inclut SimplyStored.

Par exemple, le code suivant:

Class MyExample 
    include SimplyStored::Couch 
    property :name 
end 

générerons un design doc nommé _design/myexample qui contiendra une vue nommée all_documents être utilisés pour la find (..) méthodes . C'est en effet très agréable.

Cependant Modification du code à

Class MyExample 
    include SimplyStored::Couch 
    property :name 
    view :example, :map => "function(doc) { emit(doc.name, null)}", :include_docs => true, :type => :custom 
end 

n'ajouterez pas vue par exemple le nom que je me attends, mais je me manque sûrement un point somwhere.

Donc, si quelqu'un a des suggestions sur la façon de définir des vues personnalisées supplémentaires en utilisant ces cadres, j'apprécierais vraiment.

Merci,

Répondre

4

OK, j'ai en effet manqué quelque chose que la déclaration de vue ne suffit pas pour créer la vue. Nous devons déclencher explicitement la création de la vue, par exemple en mettant à jour le code de classe:

Class MyExample 
include SimplyStored::Couch 
property :name 
view :example, :map=>"function(doc) { emit(doc.name, null)}",:type => :custom 
CouchPotato.database.view MyExample.example 
end 
+0

j'avais renoncé à ce ... alors je suis tombé sur ce :) – mraaroncruz

+0

Heureux il aidé! C'est un cadre sympa, cependant, comme d'habitude avec du rubis, il faut creuser dedans et dehors pour comprendre comment ça marche;) – devlearn

Questions connexes