【问题标题】:Count with multiple conditions in Rails在 Rails 中使用多个条件进行计数
【发布时间】:2012-04-10 21:34:12
【问题描述】:

我正在尝试计算两个已完成日期之间的所有记录。这意味着 created_at 字段介于 start_date 和 end_date 之间,并且 finished_at 字段不为空。

我可以使用以下表达式来获取未完成的记录:

Record.count(:all, :conditions => {:created_at => start_date..end_date, :finished_at => nil })

有没有类似的方法来计算finished at不为零的记录?

【问题讨论】:

  • 你可以使用一些gem,比如Squeel,meta-where。见stackoverflow.com/questions/4252349/…
  • @gayavat 我不认为 Squeel 支持介于功能之间,所以我必须做 Record.count{(created_at > start_date) & (created_at

标签: ruby-on-rails ruby-on-rails-3


【解决方案1】:

这应该可以正常工作,除非我遗漏了什么。

Record.where(:created_at => start_date..end_date).where('finished_at IS NOT NULL').count

【讨论】:

  • 我结束了 Record.where("created_at BETWEEN ? AND ? AND finished_at IS NOT NULL", start_date, end_date).count 将两个条件保持在一起
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-04-06
  • 1970-01-01
  • 2017-09-06
  • 2021-12-24
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多