代码之家  ›  专栏  ›  技术社区  ›  Jeremy Thomas

在作用域中使用lambdas返回记录

  •  0
  • Jeremy Thomas  · 技术社区  · 6 年前

    我有以下范围返回客户的余额。平衡不是一个字段,而是 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:> 元素,但我不确定如何从中获取客户,或者这种方法是否完全错误。

    1 回复  |  直到 6 年前
        1
  •  0
  •   Junsuk Park    6 年前


    嗨,杰里米!

    scope :with_balance, -> { lambda {|client| { conditions: client.balance > 0}}}


    我的解决方案:

    scope :with_balance, (lambda do
      select {|client| client.balance > 0}
    end)
    

    快乐编码:)