如何根据用户特定数据显示图表/图表

时间:2012-06-06 08:53:55

标签: ruby-on-rails highcharts

在我的ROR项目中,我使用sqlite数据库来存储我的注册用户数据。 我正在使用highcharts,我能够根据数据库中的数据生成图表。 现在我需要根据每个用户在数据库中的特定数据生成图表。

我的数据库列

ID, 名称, 第1类, 类别2, catogery 3
 在sqlite3数据库中,我需要在用户登录时能够使用来自category1,category2和category3列的数据查看饼图。

感谢任何帮助。

1 个答案:

答案 0 :(得分:1)

有几种方法可以做到这一点,但这里有一个

控制器/ charts_controller.rb

class ChartsController < ApplicationController
  def pie_chart_for_users
     @this_user = User.find(1)
  end
end

视图/图表/ pie_chart_for_users.html.erb

<script type="text/javascript">


var $j = jQuery.noConflict();

$j(document).ready(function() {
  new Highcharts.Chart({
    chart: {
      renderTo: 'users_chart',
      plotBackgroundColor: null,
      plotBorderWidth: null,
      plotShadow: false
    },
    title: {
      text: 'Unknown user data'
    },
    plotOptions: {
      pie: {
        allowPointSelect: true,
        cursor: 'pointer',
        dataLabels: {
          enabled: false
        }
      }
     },
     series: [{
    type: 'pie',
    name: 'User data',
      data: [
          ['Category One', <%= @this_user.category_one %>],
          ['Category Two', <%= @this_user.category_two %>],
          ['Category Three', <%= @this_user.category_three %>]
          ]
     }]

  });
});
</script>

<div id="users_chart"></div>

配置/ routes.rb中

map.pie_chart_for_users 'charts/pie_chart_for_users', :controller => 'charts', :action => 'pie_chart_for_users'

基于Highcharts饼图演示,使用命名路线来演示要调用的控制器和动作名称 - 您应该只能使用资源。认为这应该给你一个想法,虽然我没有运行它来测试它。