【问题标题】:Filter model association count by date?按日期过滤模型关联计数?
【发布时间】:2013-12-07 02:05:27
【问题描述】:

我有以下型号:UserCall

一个Userhas_manyCalls

一个呼叫有一个列:created_at

我需要过滤过去 'x' 天内来电次数最多的用户

到目前为止我在这里:

User.includes(:calls).limit(10).where("created_at > ?", Time.now - 20.days)

【问题讨论】:

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


    【解决方案1】:

    您应该从这里的呼叫,而不是用户。 比如:

    Call.where("created_at > ?", Time.now - 20.days).group(:user_id).order("count(user_id) DESC").count("user_id")
    

    因此,您会得到一个带有键 - 用户 ID 和值 - 调用次数的哈希

    【讨论】:

      【解决方案2】:
      User.includes(:calls).where("calls.created_at > ?", Time.now - 20.days).limit(10)
      

      【讨论】:

      猜你喜欢
      • 2021-12-16
      • 2015-01-04
      • 1970-01-01
      • 1970-01-01
      • 2018-08-18
      • 1970-01-01
      相关资源
      最近更新 更多