ハイチャートを使用して Rails アプリを Heroku に公開すると、エラーが発生します (エラー 14 )。開発中はすべて正常に動作し、値は文字列に変換されません。
基本的に、ビューが Heroku に読み込まれると、次のコードが表示されます。
<script type="text/javascript" charset="UTF-8">
$(function () {
var chart;
$(document).ready(function() {
chart = new Highcharts.Chart({
chart: {
renderTo: 'visualization',
plotBackgroundColor: null,
plotBorderWidth: null,
plotShadow: false
},
title: {
text: 'Receipts by Gender'
},
tooltip: {
formatter: function() {
return '<b>'+ this.point.name +'</b>: '+ this.percentage +' %';
}
},
plotOptions: {
pie: {
allowPointSelect: true,
cursor: 'pointer',
dataLabels: {
enabled: false
},
showInLegend: true
}
},
series: [{
type: 'pie',
name: 'Receipts by gender',
data: [["M", "432854518.0"]]
}]
});
});
});
</script>
series.data を見ると、[["M", "432854518.0"]] があり、ここに問題があります。右側の値は、浮動小数点数または少なくとも整数である必要があります。
私のコントローラー:
@pie_gender_total = Receipt.group_by_gender_pie(current_user, :total)
@pie_gender = @pie_gender_total
私の見解 :
<script type="text/javascript" charset="UTF-8">
$(function () {
var chart;
$(document).ready(function() {
chart = new Highcharts.Chart({
...
series: [{
...
data: <%=raw @pie_gender %>
}]
});
});
});
</script>
そして私のモデルメソッド:
def self.group_by_gender_pie(user, dim, begin_date=nil, end_date=nil)
arr=[]
self.group_by_gender(user).each do |item| arr.push([item.gender, dim == :count ? item.number_of_receipts : item.total]) end
arr
end
同じソリューションが開発では機能するのに、私のheroku環境では機能しない理由についてのアイデアはありますか? そして回避策は?