Ruby on rails& Couchrest模型:使用现有视图

时间:2013-05-08 15:21:12

标签: couchdb couchrest

我在使用couchDB和沙发模特时遇到了一些问题。

我的couchDB中有一个包含现有视图的运行系统(它们工作正常)。现在我想在沙发休息模型的rails项目中使用它们。 我想用以下内容定义它们:

design do
    view :by_name
end

每次运行代码时,都会使用couchrest模型中的默认视图覆盖designdocument。

有人知道如何“使用”它们,而不更改数据库的构建文件中的任何内容吗?

非常感谢!

2 个答案:

答案 0 :(得分:0)

根据Couchrest模型文档:http://www.couchrest.info/model/view_objects.html

它有一个配置选项:auto_update_design_doc,默认设置为true。

当请求视图时,将发送设计文档的快速GET,以确保它与模型中定义的最新版本保持同步。

将此选项设置为false,以便您可以使用现有视图。但是你需要自己处理视图更新。

答案 1 :(得分:0)

我一直在研究CouchRestModel一个星期左右,我认为你“使用”现有设计视图的最佳方法是在模型中定义它们。

正如您在http://www.couchrest.info/model/view_objects.html中所看到的,您可以编写自己的地图并减少功能。这不会“使用”现有的设计视图,但会使用您自己的功能覆盖,这可能与您之前编写的设计视图完全相同。

示例:

design do
    view :by_title,
        :map =>
            "function(doc) {
                if (doc['type'] == 'Post' && doc['title'] != null) {
                    emit(doc['title'], 1);
                }
            }",
        :reduce =>
            "function(keys, values, rereduce) {
                return sum(values);
            }"
end