【问题标题】:Formatting output of group by date in Rails3在 Rails3 中按日期格式化输出
【发布时间】:2012-01-17 03:04:18
【问题描述】:

我已关注this 帖子,了解有关按日期对一组结果进行分组并添加计数的说明。

我的视图中的输出如下所示:

 {Sun, 30 Oct 2011=>17, Wed, 02 Nov 2011=>19, Fri, 11 Nov 2011=>70, Sat, 12 Nov 2011=>44, Sun, 13 Nov 2011=>38, Sun, 20 Nov 2011=>4, Mon, 21 Nov 2011=>5, Sun, 27 Nov 2011=>80, Sun, 04 Dec 2011=>16, Sat, 31 Dec 2011=>48, Mon, 02 Jan 2012=>68, Tue, 03 Jan 2012=>1, Wed, 04 Jan 2012=>3, Sun, 08 Jan 2012=>9, Mon, 09 Jan 2012=>7, Wed, 11 Jan 2012=>1, Thu, 12 Jan 2012=>1}

这是我的控制器:

@radpostauth = Radpostauth.order(:authdate).group("DATE(authdate)").count

我不确定如何在表格中格式化此输出?有人可以帮忙吗?

【问题讨论】:

    标签: ruby-on-rails activerecord ruby-on-rails-3.1


    【解决方案1】:

    该查询将返回一个哈希,因此您需要做的就是遍历该哈希并将其显示在一个表中。

    这是一个迭代它的简单示例:

    $ hashish = Hash.new
    $ hashish = {'Sun, 30 Oct 2011'=>17, 'Wed, 02 Nov 2011'=>19, 'Fri, 11 Nov 2011'=>70, 'Sat, 12 Nov 2011'=>44, 'Sun, 13 Nov 2011'=>38, 'Sun, 20 Nov 2011'=>4, 'Mon, 21 Nov 2011'=>5, 'Sun, 27 Nov 2011'=>80, 'Sun, 04 Dec 2011'=>16, 'Sat, 31 Dec 2011'=>48, 'Mon, 02 Jan 2012'=>68, 'Tue, 03 Jan 2012'=>1, 'Wed, 04 Jan 2012'=>3, 'Sun, 08 Jan 2012'=>9, 'Mon, 09 Jan 2012'=>7, 'Wed, 11 Jan 2012'=>1, 'Thu, 12 Jan 2012'=>1}
    $ hashish.each {|k,v| puts "Key is #{k} and value is #{v}"}
    
    > Key is Sun, 30 Oct 2011 and value is 17
    > Key is Wed, 02 Nov 2011 and value is 19
    > Key is Fri, 11 Nov 2011 and value is 70
    > Key is Sat, 12 Nov 2011 and value is 44
    > Key is Sun, 13 Nov 2011 and value is 38
    > Key is Sun, 20 Nov 2011 and value is 4
    > Key is Mon, 21 Nov 2011 and value is 5
    > Key is Sun, 27 Nov 2011 and value is 80
    > Key is Sun, 04 Dec 2011 and value is 16
    > Key is Sat, 31 Dec 2011 and value is 48
    > Key is Mon, 02 Jan 2012 and value is 68
    > Key is Tue, 03 Jan 2012 and value is 1
    > Key is Wed, 04 Jan 2012 and value is 3
    > Key is Sun, 08 Jan 2012 and value is 9
    > Key is Mon, 09 Jan 2012 and value is 7
    > Key is Wed, 11 Jan 2012 and value is 1
    > Key is Thu, 12 Jan 2012 and value is 1
    

    这是一个在表格中显示的快速示例(我使用的是 HAML 代码,因为您没有指定 ERB 或 HAML):

    %table
      %tr
        - hashish.each do |k,v|
          %td #{k}
      %tr
        - hashish.each do |k,v|
          %td #{v}
    

    或者

    %table
      - hashish.each do |k,v|
        %tr
          %td #{k}
          %td #{v}
    

    【讨论】:

      猜你喜欢
      • 2011-06-11
      • 1970-01-01
      • 2017-11-02
      • 1970-01-01
      • 2014-06-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多