Я пытаюсь получить ярлыки, которые появятся на моей диаграмме столбцов.Highcharts, ROR, как получить ярлыки, работающие
JavaScript
<%= javascript_tag do %>
window.highchartDATA = '<%= @data %>';
<% end %>
dashboard.html.erb
<script>
$(function() {
$('#notes_chart').highcharts({
chart: {
type: 'column',
backgroundColor: {
linearGradient: { x1: 0, y1: 0, x2: 1, y2: 1 },
stops: [
[0, '#2a2a2b'],
[1, '#3e3e40']
]
},
},
title: {
text: 'Total Notes By Class Module'
},
subtitle: {
text: 'Source: Notes Table'
},
xAxis: {
categories: [],
title: {
text: null
},
labels: {
overflow: 'justify',
style: {
color: '#FFFFFF',
font: '11px Trebuchet MS, Verdana, sans-serif'
}
}
},
yAxis: {
min: 0,
title: {
text: 'Total Number',
align: 'high'
},
labels: {
overflow: 'justify',
style: {
color: '#FFFFFF',
font: '11px Trebuchet MS, Verdana, sans-serif'
}
}
},
tooltip: {
valueSuffix: ''
},
plotOptions: {
column: {
dataLabels: {
enabled: true
}
}
},
credits: {
enabled: false
},
series: [{
name: 'Number of Notes By Class Module',
data: <%= @data %>
}]
});
});
</script>
Note.rb
def self.getData
data = []
self.subject_types.each do |type|
data << self.type_count(type)
end
data
end
private
def self.subject_types
pluck(:subject_type).uniq
end
def self.type_count(type)
where(subject_type: type).count
end
end
Контроллер: notes_controller.rb
def dashboard
@data = Note.highchart_data
end
График заполняется из следующей модели:
create_table "classmodules", force: :cascade do |t|
t.integer "student_id"
t.string "subject"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
end
В настоящее время это работает. Однако я не могу заставить метки появляться на диаграмме столбцов. Как получить ярлыки автоматически? Все что есть 1, 2, 3, 4 и т. Д. Спасибо!
Вы хотите метки данных появится или вы имеете в виду этикетки на оси х и у? –
Спасибо. Я имею в виду метки на оси x. Все, что я получаю, это 0, 1, 2, 3 и т. Д. Могу ли я заставить их автоматически обновлять данные из модели/таблицы? – Co2