使用couch_potato和simply_stored添加自定义视图?

时间:2010-04-20 14:08:53

标签: ruby-on-rails couchdb couchpotato

我正在在couchdb之上构建一个rails应用程序,并决定尝试使用couch_potato和simply_stored gems,因为它们似乎在其余api上面添加了一个很好的功能集,并将couchdb开发放在了轨道上。

从我所看到的SimlyStored / Couch在couch_potato层之上工作,所以根据我的理解,基本的couch_potato功能应该可以从包含SimplyStored的类中访问:: 沙发上。

但是,我无法使用 view 关键字在包含SimplyStored的模型中创建自定义视图。

例如,以下代码:

Class MyExample
  include SimplyStored::Couch
  property :name
end

将生成名为 _design / myexample 的设计文档,其中包含名为 all_documents 的视图,用于 find(..)方法。这确实非常好。

但是将代码更改为

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

不会像我期望的那样添加一个名为example的视图,但是我肯定错过了一个点。

因此,如果有人对如何使用这些框架定义其他自定义视图有一些建议,我真的很感激。

谢谢,

1 个答案:

答案 0 :(得分:4)

好吧,我确实错过了一些东西,因为视图声明不足以创建视图。我们必须明确触发视图创建,例如通过将类代码更新为:

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