我有以下范围来返回具有余额的客户。余额不是字段,而是Client
模型上的函数。
def balance
purch = self.purchases.map(&:total).sum
pay = self.payments.sum(:amount)
return purch - pay
end
scope :with_balance, -> { lambda {|client| { conditions: client.balance > 0}}}
这样做的结果是#<Proc:>
元素,但我不知道如何从中获取客户端,或者这种方法是完全错误的。
答案 0 :(得分:0)
嗨,杰里米!
scope :with_balance, -> { lambda {|client| { conditions: client.balance > 0}}}
“条件”没有选项,所以我认为使用“选择”是过滤具有正余额的客户的合理解决方案。
我的解决方案:
scope :with_balance, (lambda do
select {|client| client.balance > 0}
end)
快乐编码:)