Я не могу получить плагин highcharts для рендеринга графика в приложении rails:
http://github.com/loudpixel/highcharts-rails
Я полагаю, что это как-то связано с запросами sql к базе данных, размещенной в массиве ruby, который JavaScript не может интерпретировать. Вот что у меня есть:
def panels
pass = Student.find_by_sql('SELECT COUNT(*) FROM students WHERE student_state = 1')
fail = Student.find_by_sql('SELECT COUNT(*) FROM students WHERE student_state = 2')
student_data = [
{:name => 'Pass', :y => pass},
{:name => 'Fail', :y => fail}
]
pie_label_formatter = '
function() {
if (this.y > 15) return this.point.name;
}'
pie_tooltip_formatter = '
function() {
return "<strong>" + this.point.name + "</strong>: " + this.y + " %";
}'
@pie_chart =
Highchart.pie({
:chart => {
:renderTo => "pie-chart-container",
:margin => [50, 30, 0, 30]
},
:plotOptions => {
:pie => {
:dataLabels => {
:formatter => pie_label_formatter,
:style => {
:textShadow => '#000000 1px 1px 2px'
}
}
}
},
:series => [
{
:type => 'pie',
:data => student_data
}
],
:subtitle => {
:text => 'April 2010'
},
:title => {
:text => 'Student Status Chart'
},
:tooltip => {
:formatter => pie_tooltip_formatter
},
})
Обратите внимание, если я поставлю это:
: data => student_data.to_json
На самом деле он возвращает строку json моего запроса в виде текста в браузере.
Кроме того, если я жестко закодирую значения (например: y => 1), он будет правильно отображать диаграмму.
Однако любой запрос к базе данных не будет правильно отображать диаграмму. Так что я не уверен точно, в чем проблема.
Какие-либо предложения? Благодарю.