在html.erb中用JavaScript调用我的模型

时间:2013-12-23 22:19:42

标签: javascript ruby-on-rails charts google-visualization erb

我在index.html.erb

中的视图中有这段代码
<html>
<head>
<!--Load the AJAX API-->
<script type="text/javascript" src="https://www.google.com/jsapi"></script>
<script type="text/javascript">

  // Load the Visualization API and the piechart package.
  google.load('visualization', '1.0', {'packages':['corechart']});

  // Set a callback to run when the Google Visualization API is loaded.
  google.setOnLoadCallback(drawChart);

  // Callback that creates and populates a data table,
  // instantiates the pie chart, passes in the data and
  // draws it.
  function drawChart() {

    // Create the data table.
    var data = new google.visualization.DataTable();
    data.addColumn('string', 'Topping');
    data.addColumn('number', 'Slices');

ActiveRecord.connect()

    var accounts = Account.find({
        all: true,
        order: 'id DESC'
    });

for (var i=0;i<accounts.length;i++)
{ 
    document.write(accounts.a_name);
    data.addRow([accounts.a_name, accounts.a_amount]);
}



    // Set chart options
    var options = {'title':'Accounts balance distribution',
                   'width':600,
                   'height':500};

    // Instantiate and draw our chart, passing in some options.
    var chart = new google.visualization.PieChart(document.getElementById('chart_div'));
    chart.draw(data, options);
  }
</script>
</head>

<body>
<!--Div that will hold the pie chart-->
<div id="chart_div"></div>
</body>
</html>

帐户模型没有返回任何值,您是否知道如何更改代码以使其返回值

感谢您并期待您的反馈 /穆罕默德萨米

1 个答案:

答案 0 :(得分:4)

由于ERB代表嵌入式Ruby,你必须嵌入它:

因此,当您编写var accounts = value时,您必须将'value'嵌入<%=%>并确保该值为某些ruby,它会为您的Javascript返回相应的字符串(如果它不是动态的那么你会写得很难。