【问题标题】:rails statistic visualizer with method or visualize a different view WEEK/MONTH/YEAR使用方法或可视化不同视图的轨道统计可视化器 WEEK/MONTH/YEAR
【发布时间】:2015-10-15 20:45:19
【问题描述】:

:-) 在问一些问题之前,我更喜欢说对不起,因为我是 Rails 的初级开发人员,在过去的 3 天里,我试图在 Rails 中可视化一些统计数据,但我发现了很多问题有人可以帮助我吗?如果有人有好主意,我会离开我的数据库结构

这就是我尝试做的事情:我试图在表格中可视化一些数据,以了解我一整天有多少事件,并可视化:每天 TOTAL PRICE、TOTAL_EVENT、TOTAL_PAX,如果你看到数据库表你可以看到我为每个事件使用一个日期范围,然后我变得疯狂!在数据库中,每个事件都是这样保存的

这就是我想要的可视化

为了让我需要使用模型,因为我有 3 个视图...周/月/年,我认为最好使用一种方法?对吧?

有什么好主意吗?

【问题讨论】:

    标签: ruby-on-rails ruby ruby-on-rails-4 statistics postgresql-9.3


    【解决方案1】:

    我真的不知道我是否得到了你想要做的事情,但我会根据我得到的来解释。

    我使用Hash 来保存数据,但您可能会使用您的模型。

    data = [{ id: 1, price: 2, pax: 2, event_room_numer: 1, start_date: "10-10-2015".to_date, end_date: "12-10-2015".to_date }, { id: 2, price: 3, pax: 12, event_room_numer: 3, start_date: "08-10-2015".to_date, end_date: "16-10-2015".to_date }, { id: 1, price: 2, pax: 20, event_room_numer: 3, start_date: "12-10-2015".to_date, end_date: "16-10-2015".to_date }]
    

    在下面的代码中,我创建了一个 Hash 来保存特定日期的事件。

    events_on_day = {}
    data.each do |dado|
      (dado[:start_date]..dado[:end_date]).each do |date|
        events_on_day[date] ||= []
        events_on_day[date] << dado
      end
    end
    

    然后我们根据天数(键)对Hash 进行排序。

    sorted_events_on_day = events_on_day.sort.to_h
    

    最后我们得到了统计数据。

    statistics = sorted_events_on_day.map do |date, events|
      total_price, total_pax = 0, 0
      total_event = events.count # count the events on the day
      events.each do |event|
        total_price += event[:price] # sum price for the day
        total_pax += event[:pax] # sum pax for the day
      end
    
      [date, total_event, total_price, total_pax]
    end
    

    statistics 数组中,我们将拥有每天的数据。像这样的东西(对于data 输入):

    data         total_event   total_price   total_pax
    2015-10-08   1             3             12
    2015-10-09   1             3             12
    2015-10-10   2             5             14
    2015-10-11   2             5             14
    2015-10-12   3             7             34
    2015-10-13   2             5             32
    2015-10-14   2             5             32
    2015-10-15   2             5             32
    2015-10-16   2             5             32
    

    【讨论】:

      猜你喜欢
      • 2020-03-21
      • 2019-04-10
      • 2015-11-29
      • 1970-01-01
      • 2020-04-14
      • 2017-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多