模型中的类方法,用于获取给定日期的数据



我正在构建一个呼叫跟踪应用程序,作为学习Rails和Twilio的一种方式。现在,我正在尝试按照Ryan Bates的教程创建一个图表,向用户显示他们每天的电话数量。

该模型的工作方式是这样的 ->电话has_many呼叫

我想做的是创建一个类方法,允许我做类似的事情

phone.calls.total_on(日期)

这将显示特定电话在特定日期的总呼叫数。

这是我的手机模型中当前的代码

  def self.total_on(date)
    where("date(calls_at) = ?", date).sum( self.calls.count )
  end

代码可能有问题的地方是sum(self.calls.count)。如果我的方向正确,这将计算所有呼叫,无论日期如何。

我将如何制作一个类方法来计算特定日期的调用?

谢谢你到目前为止一直和我在一起!非常感谢您的想法。

简单地说:

def total_on(date)
  self.calls.where("placed_at >= ? AND placed_at <= ?", date.beginning_of_day, date.end_of_day).count
end

假设您有一个Phone对象,并且您想知道在给定的一天中发生了多少次对该对象的关联调用。此方法应该是实例方法,而不是方法。我不明白,如果您想查看特定电话在特定日期有多少次呼叫,为什么它会是一个类方法。

如果你使用by_star,上面的代码将是这样的:

def total_on(date)
  self.calls.by_day(date).count
end

尝试以下操作

  def self.total_on(date)
    query = select("calls.id").where("date(calls_at) = ?", date).joins(:calls)
    query.count
  end

相关内容

  • 没有找到相关文章

最新更新