【问题标题】:Deprecated count in rails 4rails 4中不推荐使用的计数
【发布时间】:2013-08-28 12:57:45
【问题描述】:
a = Session.where(:date_at => date_from..date_to).
            order("date_at").
            count("DISTINCT(user_id)",
                  :group => "date(convert_tz(date_at, 'UTC', 'Europe/Warsaw'))")

如何在 Rails 4 中编写这个?

这会产生错误:

DEPRECATION WARNING: Relation#calculate with finder options is deprecated. Please build a scope and then call calculate on it instead. (called from block (2 levels) in <top (required)> at /Users/xxx/Desktop/DEPLOY/d1_mysql/d1/app/admin/user.rb:11)
DEPRECATION WARNING: The :distinct option for `Relation#count` is deprecated. Please use `Relation#distinct` instead. (eg. `relation.distinct.count`). (called from block (2 levels) in <top (required)> at /Users/xxx/Desktop/DEPLOY/d1_mysql/d1/app/admin/user.rb:11)

【问题讨论】:

    标签: sql ruby-on-rails


    【解决方案1】:

    更多铁轨 4 路。 .

    Session.where(date_at: date_from..date_to).select('distinct user_id')
           .group("date(convert_tz(date_at, 'UTC', 'Europe/Warsaw'))").count
    

    【讨论】:

      【解决方案2】:

      你可以试试这个:

      Session.where(:date_at => date_from..date_to)
             .select('user_id').distinct
             .group("date(convert_tz(date_at, 'UTC', 'Europe/Warsaw'))")
             .count
      

      【讨论】:

      • @Michael“不推荐使用查找器选项计算”意味着您不能执行count("...", :group =&gt; "...")。您必须改用.group("...").count。第二个弃用警告很明显。清楚地说明了你必须做什么。
      猜你喜欢
      • 2018-03-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-06-06
      • 2011-10-31
      • 1970-01-01
      • 2016-10-18
      • 1970-01-01
      相关资源
      最近更新 更多