rails 具有方法的统计可视化工具或可视化不同的视图 WEEK/MONTH/YEAR

rails statistic visualizer with method or visualize a different view WEEK/MONTH/YEAR

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

这就是我尝试做的事情:我尝试在 table 中可视化一些数据,以了解我一整天有多少事件,并可视化:总价,TOTAL_EVENT , TOTAL_PAX 每天,如果您看到数据库 table,您就会看到我为每个事件都使用了一个日期范围,我变得非常生气!在数据库中,每个事件都是这样保存的

这就是我想要可视化的内容

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

有什么好主意吗?

我真的不知道我是否明白你想要做什么,但我会根据我得到的解释。

我正在使用 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