【问题标题】:Get the first child of a group in active record获取活动记录中组的第一个孩子
【发布时间】:2017-06-23 21:19:12
【问题描述】:

我们有一个推荐计划。当被推荐用户订阅时,推荐人应获得第一张发票上应付金额的百分比。

referral_ids = (an array of a bunch of user_ids)

我可以为每个被推荐的用户获得一张发票,如下所示:

invoices = Invoice.where(user_id: referred_user_ids, renewal: false).group(:user_id).pluck(:amount_due)

但是,由于 amount_due 可能因发票而异,我想知道如何确保从 GROUP BY 返回的记录是该组中的第一个/最旧的记录。提前致谢。

【问题讨论】:

标签: mysql ruby-on-rails ruby-on-rails-4 activerecord


【解决方案1】:

这可能不是您希望的解决方案,但也许(出于业务原因)您应该考虑在发票表中添加一个新字段,例如

  • referral_fee:boolean(默认为 false)
  • referral_fee_percent(默认为 0)

然后,您可以为每个附属公司提供多张佣金发票,和/支持浮动佣金

  • 发票 1 - 100%
  • 发票 2 - 50%

在驳回这个想法之前,不妨问问你的产品经理/首席执行官他们是否对这种类型的功能感兴趣。

这将使查找佣金发票变得非常简单。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-10-13
    • 2017-09-21
    • 2017-03-11
    • 2014-03-14
    • 2014-08-29
    相关资源
    最近更新 更多