首页 > 解决方案 > 如何在haml的javascript代码中使用ruby代码?

问题描述

我正在使用haml在rails 5上开发我的应用程序,我需要在javascript代码中执行“each”来显示存储过程的数据,以便可以显示图表。问题是我无法在 javascript 中呈现数据。如果没有haml,它将是这样的:

<script>
var config = {
    type: 'pie',
    data: {
        datasets: [{
            data: [
              <% @result.to_a.each do |foo| %>
                "<%= foo["balance"] %>"
                <%= "," unless foo == @result.to_a.last %>
              <% end %>
            ], ...
</script>

这是我的 _partial.html.haml

%canvas{id: 'myChart', width: '400', height: '130'}

:javascript



    var config = {
        type: 'pie',
        data: {
            datasets: [{
                data: [
                  #{@result.to_a.each do |foo| 
                    "#{foo["balance"]}"#{","}
                  end}
                ],
                backgroundColor: [
                  "#F7464A",
                  "#46BFBD",
                  "#FDB45C",
                  "#949FB1",
                  "#4D5360",
                ],
                label: 'Dataset 1'
            }],
            labels: [
              "Red",
              "Green",
              "Yellow",
              "Grey",
              "Dark Grey"
            ]
        },
        options: {
            responsive: true,
            legend: {
                position: 'top',
            },
            title: {
                display: true,
                text: 'Chart.js Doughnut Chart'
            },
            animation: {
                animateScale: true,
                animateRotate: true
            }
        }
    };

    window.pPercentage = new Chart(document.getElementById("myChart"), config);

它没有在控制台中显示错误,只是没有显示图表

标签: javascriptruby-on-railsruby-on-rails-5haml

解决方案


推荐阅读