【发布时间】:2012-02-11 02:32:13
【问题描述】:
我有一个类似这样的设置:
table = self.arel_table
nodes = [1,2,3].collect do |c|
table[:foo].eq(c).and( table[:bar].eq(c) )
end
然后,我希望将这些条件片段组合起来以生成类似于以下内容的 SQL:
WHERE (foo = 1 AND bar = 1) OR (foo = 2 AND bar = 2) OR (foo = 3 AND bar = 3)
到目前为止我最接近的是:
nodes.inject(nodes.shift) {|memo, node| memo.or( Arel::Nodes::Grouping.new(node) ) }
我以不同的方式尝试了Arel::Nodes::Grouping.new,但它从来没有按照我想要的方式分组。
【问题讨论】:
标签: ruby-on-rails ruby arel