我正在尝试使用baby_squeel编写一个相当复杂的查询。该查询需要使用coalesce
SQL函数。在baby_squeel主页上多次使用coalesce
作为示例,但当我尝试在查询中使用它时,我得到一个无方法错误。
以下示例:
result = Table.selecting { |t| [t.col1,
((coalesce(t.col2, 0) + coalesce(t.col3, 0)).sum.as('column'))] }
.where.has { |t| t.col4 == 'some condition' }
.grouping { |t| t.col1 }
我正在使用Rails 5和baby_squeel 1.2。查询在私有控制器函数内部调用。
为什么会这样?我是否需要require
某事或使用arel自己定义函数?
答案 0 :(得分:0)
不确定这是否会对任何人有所帮助,但我找到了我所缺少的东西。由于我给了块,我必须引用我希望在这种情况下使用airty变量的函数t
。正确的代码是:
result = Table.selecting { |t| [t.col1,
((t.coalesce(t.col2, 0) + t.coalesce(t.col3, 0)).sum.as('column'))] }
.where.has { |t| t.col4 == 'some condition' }
.grouping { |t| t.col1 }