Javascript 获取Rails/Chart.JS的哈希值

Javascript 获取Rails/Chart.JS的哈希值,javascript,ruby-on-rails,ruby,charts,chart.js,Javascript,Ruby On Rails,Ruby,Charts,Chart.js,您好,我正在用RoR编写一个表单生成器,我想为我的任何问题生成几个图表。对于我的问题x,我有这个结果 {"answer1"=>2, "answer2"=>2, "answer3"=>1, ...} 我想知道如何访问第二个数据(数字),以及如何在Chart.js脚本上设置“label”和“data”字段: answer= [<% for rep in @polls4 %> "<%= rep.nom %>", &l

您好,我正在用RoR编写一个表单生成器,我想为我的任何问题生成几个图表。对于我的问题x,我有这个结果

 {"answer1"=>2, "answer2"=>2, "answer3"=>1, ...} 
我想知道如何访问第二个数据(数字),以及如何在Chart.js脚本上设置“label”和“data”字段:

 answer= [<% for rep in @polls4 %>
         "<%= rep.nom %>",
         <% end %>];
var myChart = new Chart(ctx, {
type: 'bar',
data:  {
    labels:answer,
    datasets: [{
        label: '# of Votes',
        data: ?,
        backgroundColor: [

谢谢

相反,在JS中添加一个循环,将polls变量初始化为一个ID数组,这样可以避免收集它们,并在JS代码中添加Ruby逻辑:

@polls4 = @polls.where('question_id = ?', 4).pluck(:nom)
在进行分组时,您会得到密钥/值数据的散列,使用Pulk只会得到每个轮询的id:

因此,图表:

var answer = "<%= @polls4 %>";
var myChart = new Chart(ctx, { 
  ...
});
var-answer=”“;
var myChart=新图表(ctx,{
...
});

我建议您将@polls4变量重命名为更具描述性的变量,并避免在变量名中使用数字。

您希望标签=['answer1'、'answer2'、…]和数据=[2、2、…]。我说得对吗?@hamdi是的,没错谢谢你@sebastianPalma!
var answer = "<%= @polls4 %>";
var myChart = new Chart(ctx, { 
  ...
});