Javascript rails和highcharts柱形图

Javascript rails和highcharts柱形图,javascript,ruby-on-rails,ruby,highcharts,Javascript,Ruby On Rails,Ruby,Highcharts,嗨,我真的卡住了,我在rails应用程序中使用highcharts,试图得到一个柱形图,显示我在数据库中与女性用户相比有多少男性用户,但似乎无法找出如何从我的用户数据库表中读取数据。这是我的用户模型 def self.gender_analysis(gender) User.where(:gender => MALE).count User.where(:gender => FEMALE).count end 这是我的user.js文件,我把图表放在这里 $(functio

嗨,我真的卡住了,我在rails应用程序中使用highcharts,试图得到一个柱形图,显示我在数据库中与女性用户相比有多少男性用户,但似乎无法找出如何从我的用户数据库表中读取数据。这是我的用户模型

def self.gender_analysis(gender)
  User.where(:gender => MALE).count
  User.where(:gender => FEMALE).count
end
这是我的user.js文件,我把图表放在这里

$(function(){
   new Highcharts.Chart({
     chart:{
       renderTo: "pie_chart",
       type:"column"
       },
       title: { text: "Gender" },
       xAxis: { type: "percent correct"},
       yAxis: {    
       title: { text: "Gender" }
    },
          series: [{
            data: <%= users.each do |user| %>
            }]
      });
   });
$(函数(){
新海图,海图({
图表:{
renderTo:“饼图”,
类型:“列”
},
标题:{文本:“性别”},
xAxis:{type:“正确百分比”},
亚克斯:{
标题:{正文:“性别”}
},
系列:[{
数据:
}]
});
});
我的user view.html.erb看起来像

<div id="pie_chart" style="width:568px; height:300px;"></div>
<h1>Listing users</h1>

<table>
  <thead>
    <tr>
      <th>Number</th>
      <th>Gender</th>
      <th>Hobby</th>
      <th>Created</th>
      <th></th>
      <th></th>
      <th></th>
    </tr>
  </thead> 
<tbody>
    <% @users.each do |user| %>
      <tr>
        <td><%= user.number %></td>
        <td><%= user.gender %></td>
        <td><%= user.hobby %></td>
        <td><%= user.created_at %></td>

列出用户
数
性别
爱好
创建

我是rails开发的新手,非常感谢您给予我的任何帮助

def self.gender_analysis(gender)
  User.where(:gender => MALE).count if gender == :male
  User.where(:gender => FEMALE).count if gender == :female
end
然后在您的ERB文件中,您应该具有以下内容:

$(function(){
   new Highcharts.Chart({
     chart:{
       renderTo: "pie_chart",
       type:"column"
       },
       title: { text: "Gender" },
       xAxis: { type: "percent correct"},
       yAxis: {    
       title: { text: "Gender" }
    },
     ,
        series: [{
            type: 'pie',
            name: 'Gender Split',
            data: [
                ['Female',   <%= User.gender_analysis(:female) %>],
                ['Male',     <%= User.gender_analysis(:male) %>]
            ]
        }]
      });
   });
$(函数(){
新海图,海图({
图表:{
renderTo:“饼图”,
类型:“列”
},
标题:{文本:“性别”},
xAxis:{type:“正确百分比”},
亚克斯:{
标题:{正文:“性别”}
},
,
系列:[{
键入“pie”,
姓名:'性别分裂',
数据:[
[‘女性’,],
[‘男性’,]
]
}]
});
});
很简单: 在您的
视图中
,我的意思是在您的
html.erb
put中:

<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>
这里还有小提琴


快乐编码!:)

嗨,不知什么原因,图表不会为我显示,但它在我的视图文件中还是空白。你的html/JS是什么样子的?嗨,我只是用index.html文件中的这个div调用了所有内容。上面的答案似乎对我有用。谢谢你的帮助。谢谢你的帮助。你的救命稻草
$(function () {
        $('#container').highcharts({
            chart: {
                type: 'column'
            },
            title: {
                text: 'Total User'
            },
            subtitle: {
                text: 'Source: Unknown'
            },
            xAxis: {
                categories: ['Male', 'Female'],
                title: {
                    text: null
                }
            },
            yAxis: {
                min: 0,
                title: {
                    text: 'Total Number',
                    align: 'high'
                },
                labels: {
                    overflow: 'justify'
                }
            },
            tooltip: {
                valueSuffix: ''
            },
            plotOptions: {
                bar: {
                    dataLabels: {
                        enabled: true
                    }
                }
            },

            credits: {
                enabled: false
            },
            series: [{
               name: 'Users',
               data: [<%= User.where(:gender => 'MALE').count %>, <%= User.where(:gender => 'FEMALE').count %>]
            }]
        });
    });