我是铁杆新手。我试图弄清楚如何在sum()
sql函数中使用模型方法。我试着寻找解决方案,但找不到解决方案。这是代码段:
SUM(indents.total_payable_amount_paid) AS sum_comm_t_amount_payable_paid
我想使用total_payable_amount_paid
模型中定义的名为indent
的方法。但它总是会出错:
PGError: ERROR: column indents.total_payable_amount_paid does not exist.
那么这个问题的解决方案是什么?提前谢谢!
答案 0 :(得分:0)
问题在于,SUM
(我假设它在查询字符串中)将indents.total_payable_amount_paid
作为该字符串的一部分。
为避免您可以使用字符串插值来设置所需的值,如下所示:
"SUM(#{indents.total_payable_amount_paid}) AS sum_comm_t_amount_payable_paid"
所以,让我们说indents.total_payable_amount_paid
返回250
,然后上面的代码会生成这个字符串:
"SUM(250) AS sum_comm_t_amount_payable_paid"
但是,使用SUM
将不起作用,因为你给了一个值,所以你可以在没有它的情况下完成同样的事情:
"#{indents.total_payable_amount_paid AS sum_comm_t_amount_payable_paid"
#=> "250 AS sum_comm_t_amount_payable_paid"