我坚持这个并且肯定很容易,但我在文档中找不到解决方案.
我有一些树结构和子where where子句,我必须使用"exists"子查询进行过滤:
current_node.children.as("children_nodes").where(Node.where(...).exists)
Run Code Online (Sandbox Code Playgroud)
Node.where.clause已经加入了children_nodes,如果我使用两个不同的模型,它就可以工作.但是我该如何使用别名呢?以上代码将导致:
NoMethodError (undefined method `where' for #<Arel::Nodes::TableAlias
Run Code Online (Sandbox Code Playgroud)
它是如此基本,但我缺少的东西(我太新了).
首先,这个问题 - 来自all_docs的过滤器设计文档 - 似乎已经解决了,如下所述:https: //plus.google.com/+JasonDeRose/posts/1iP5tu3wVqw
/mydb/_all_docs?endkey=%22_%22
Run Code Online (Sandbox Code Playgroud)
并在第一名工作.但是,突然在不同的设置(实际上只是不同的部署)中,查询只返回一个空集合[].似乎订单改变了,没有endkey ="_",返回完整的集合(包括设计文档).我尝试了endkey/startkey的各种组合,但无法再次过滤设计文档.
最后我添加了一个过滤器并切换到_changes?include_docs = true来加载初始文档.我还考虑过定义一个视图,但不喜欢这会导致数据复制和更改提供的一些不便(在另一个上下文中需要).另一方面,将对每个文档执行过滤器.
它是一个错误,endkey =%22_%22不再起作用,是否有更方便,仍在工作的方式?