Я создаю приложение в Ruby on Rails.В приложении у меня есть несколько вещей, которые я отслеживаю по количеству кликов, используя события Ahoy.Это количество кликов затем отображается на странице администратора в диаграмме с помощью Chartkick.Идея состоит в том, что если что-то имеет небольшие щелчки, его следует удалить и заменить чем-то другим.Теперь проблема в том, что если я удаляю информацию, то она все еще отслеживается в Chartkick.
Например, обычно в Chartkick создаются графики, например
<%= pie_chart Yogurt.group(:flavor).count %>
Где Yogurt - это имятаблицы: flavour - это имя столбца.Однако при использовании Ahoy :: Events отслеживается много информации, такой как идентификатор, класс, текст и т. Д. В столбце свойств
Если я попытаюсь создать такой график, как этот
<%= pie_chart Ahoy::Events.group(:properties).count %>
Тогда информация, отображаемая на графике, будет включать все различные нажатия кнопок, их идентификаторы и т. Д., И она просто не будет читаться.Это также означает, что невозможно разделить различные щелчки, которые необходимо отслеживать.
Еще один способ сделать это - создать в контроллере переменную, в которую будет входить число раз, которое оно появляется вбаза данных
@variable = Ahoy::Events.where("properties->>'text' = ?", "Name of title that you are tracking the clicks for").count
Это будет количество нажатий на определенную кнопку.Затем можно создать график, выполнив это
= pie_chart [["Name of title that you are tracking the clicks for", @variable], ["anothername", @variable2]]
. Это сработает, однако в контроллере это выглядит ужасно, когда один график содержит около 15 переменных.Кроме того, когда один из заголовков будет удален для чего-то другого, на диаграмме все равно будет отображаться старый заголовок.
Идея, которую я придумал, состоит в том, чтобы дать заголовку класс, который представляет его, такой какфункции.Каждый объект будет иметь этот класс, поэтому их можно найти, выполнив эти
@features = Ahoy::Events.where("properties->>'class' = ?", "btn btn-link feature")
@ функции, затем можно зациклить, и текст, отображаемый
@features.each_with_index do |name, index|
puts @name[index].properties["text"]
end
Это возвращает что-то вродеэто (где заголовки были заменены функцией n)
feature 1
feature 2
feature 1
feature 4
feature 5
Теперь это хорошо, так как включает в себя текст, который я хочу отобразить, и количество раз, когда они происходят
Однако я не могу создать график чарткиковкак это
= pie_chart @features
, поскольку @features имеет неправильный формат
Мне нужно создать переменную в этом формате
{"feature 1"=>n, "feature 2"=>n}
, где n - это числораз они появляются в цикле