【发布时间】:2018-06-12 12:56:08
【问题描述】:
我有以下范围来返回客户的余额。余额不是一个字段,而是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:> 元素,但我不确定如何从中获取客户,或者这种方法是否完全错误。
【问题讨论】:
-
范围 :with_balance, -> { where('balance > ?', 0) }
-
ActiveRecord::StatementInvalid: PG::UndefinedColumn: ERROR: column "balance" does not exist我包含了它是一个方法而不是列的事实,因为您无法使用 mthods 执行where查询 -
你可以从这里找到一些帮助 - stackoverflow.com/questions/49030775/…
标签: ruby-on-rails lambda scope