I followed steps from http://www.highcharts.com/demo/column-basic/skies and the issue is that my values from my controller to my Highchart graphic is showing blank ( is not showing my value)
Here my tables http://sqlfiddle.com/#!2/b7347/5 that i use in my controller
|policies|
ID POLICY_NUM DATE_INI CATEGORY_ID
1 1234 2013-01-10 1
2 5678 2013-01-10 2
3 3444 2013-02-10 1
4 4577 2013-02-10 2
|categories|
ID NAME
1 Life
2 Vehicles
Here is my controller
def report
@jan_life =Policy.find_by_sql("select count(*) as total from policies Inner join categories ON categories.id =category_id WHere category_id = 1 AND date_ini BETWEEN '2013-01-01' AND '2013-01-31'")
@jan_vehi =Policy.find_by_sql("select count(*) as total from policies Inner join categories ON categories.id =category_id WHere category_id = 2 AND date_ini BETWEEN '2013-01-01' AND '2013-01-31'")
@feb_life =Policy.find_by_sql("select count(*) as total from policies Inner join categories ON categories.id =category_id WHere category_id = 1 AND date_ini BETWEEN '2013-02-01' AND '2013-02-28'")
@feb_vehi =Policy.find_by_sql("select count(*) as total from policies Inner join categories ON categories.id =category_id WHere category_id = 2 AND date_ini BETWEEN '2013-02-01' AND '2013-02-28'")
end
Here is my view
##### To Disable prototype #####
<script type="text/javascript">Array.prototype.reduce = undefined;</script>
##### To show High Chart Code ####
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
##### Values from my controller , actually is working ####
<%= @jan_life[0].try(:total) %> #it shows 1 value according with the info
<%= @jan_vehi[0].try(:total) %> #it shows 1 value according with the info
<%= @feb_life[0].try(:total) %> #it shows 1 value according with the info
<%= @feb_vehi[0].try(:total) %> #it shows 1 value according with the info
#### This code is HighChart image ####
<script src="http://code.highcharts.com/highcharts.js"></script>
<script src="http://code.highcharts.com/modules/exporting.js"></script>
<div id="container" style="min-width: 310px; height: 400px; margin: 0 auto"></div>
<script type="text/javascript">
$(function () {
$('#container').highcharts({
chart: {
type: 'column'
},
title: {
text: 'Monthly Average Rainfall'
},
subtitle: {
text: 'Source: WorldClimate.com'
},
xAxis: {
categories: [
'Jan',
'Feb'
]
},
yAxis: {
min: 0,
title: {
text: 'Rainfall (mm)'
}
},
tooltip: {
headerFormat: '<span style="font-size:10px">{point.key}</span><table>',
pointFormat: '<tr><td style="color:{series.color};padding:0">{series.name}: </td>' +
'<td style="padding:0"><b>{point.y:.1f} mm</b></td></tr>',
footerFormat: '</table>',
shared: true,
useHTML: true
},
plotOptions: {
column: {
pointPadding: 0.0,
borderWidth: 0
}
},
series: [{
name: 'Life',
data: @jan_life[0].try(:total) %>,
} , {
name: 'Vehicles',
data: @feb_life[0].try(:total) %>
}]
});
});
</script>
What I'm doing wrong? is showing blank seems that is not passing params
Here is the highchart code view that I should have http://jsfiddle.net/ajEF2/ .
But I don't want to write the value ,I want use values from my controller to show in my report image
Please somebody can help me with this?
I will really appreciate help
Couple things:
1.) Aren't you missing the
<%=
in your data assignment:2.) It's been a while since I've done rails but won't
<%= @feb_life[0].try(:total) %>
produce a single value? You'll end up with:The data property must be an array. Try: