【发布时间】:2011-07-05 22:01:41
【问题描述】:
我正在对我的 domain 表的两个子集执行联合,其中 cnt 是一个局部变量,使用 arel 2.0.9 和 squeel 0.8.5 作为查询接口。
def bla cnt
Domain.group { some_id }.select { `*` }.select { count(`*`).as(`cnt`) }.having { `cnt` >= cnt }
end
现在,当建立两个调用的联合时说cnt(1).union(cnt(1)),我得到一个Arel::Nodes::Union 实例。
我如何使用这种关系来实际得到我的结果?调用#each 产生完全相同的Arel::Nodes::Union 引用,而#to_sql 产生TypeError: Cannot visit Arel::Nodes::Union。
有什么想法吗?我可以以不同的方式编写查询,例如通过使用条件逻辑(在 arel 中可行吗?)...
【问题讨论】:
-
这似乎是同一个问题:github.com/rails/rails/issues/939。但目前尚不清楚它为何关闭。