Если я понимаю ваш вопрос, вам нужно манипулировать хешем данных.
В контроллере сделайте что-то вроде этого:
@data = User.group_by_week(:created_at).count
accumulator = 0
@data.transform_values! do |val|
val += accumulator
accumulator = val
end
Затем показать график в виде <%= line_chart @data %>
Если вы проверяете хеш <%= User.group_by_week(:created_at).count.inspect %>
, становится ясно.
Чтобы использовать аккумулятор поверх любого хеша, может быть полезно добавить пользовательский метод в хеш класса.
module HashPatch
def accumulate_values!
accumulator = 0
transform_values! do |val|
val+= accumulator
accumulator = val
end
end
end
Hash.include HashPatch
points = {'x1' => 0, 'x2' => 10, 'x3' => 10, 'x4' => 10.1}
points.accumulate_values! #=> {"x1"=>0, "x2"=>10, "x3"=>20, "x4"=>30.1}
transform_values!
начиная с Ruby v4.2.1