1

我正在尝试执行以下操作:

index.html.erb

<div id="container" style="min-width: 400px; height: 400px; margin: 0 auto"></div>

<script>
    $(function () {
        var chart;
        $(document).ready(function () {
            chart = new Highcharts.Chart({
                chart:{
                    renderTo:'container',
                    type:'column'
                },
                title:{
                    text:'<%= Date.today.strftime("%B")%> Overtime'
                },
                xAxis:{
                    categories:[

                        '<%= Date.today.strftime("%B")%>'

                    ]
                }, 
                yAxis:{
                    min:0,
                    title:{
                        text:'Hours'
                    }
                },
                legend:{
                    layout:'vertical',
                    backgroundColor:'#FFFFFF',
                    align:'left',
                    verticalAlign:'top',
                    x:100,
                    y:70,
                    floating:true,
                    shadow:true
                },
                tooltip:{
                    formatter:function () {
                        return '' +
                                'Hours' + ': ' + this.y;
                    },

                    credits:{
                        text:'migroup-.co.uk',
                        hreft:'http://wwww.migroup.co.uk'
                    }
                },
                plotOptions:{
                    column:{
                        pointPadding:0.4,
                        borderWidth:0
                    }
                },


                series:[
                    <% @user.hospital_bookings.each do |hospital_booking| %>

                    {
                        name:'<%= hospital_booking.try(:name)%>',
                        data:[<%= hospital_booking.sum(&:overtime)%>


                        ]
                        // color: '#8F8689',
                    },
                    <% end %>
                    {
                        name:'Total',
                        data: [<%= @hospital_bookings.to_a.sum(&:overtime)%>],
                        color:'#FE9D00'
                    }
                ]
            });
        });

    });


</script>

控制器.rb

定义索引

@user = User.all
@hospital_bookings = HospitalBooking.scope

结束结束

我想要做的是为每个用户,迭代他们的预订并总结他们的overtime.

楷模

User.rb 
has_many :hospital_bookings 

Hospital_booking
belongs_to :user

这将有效地做的是让用户和他们的加班时间相加。但由于某种原因,这不起作用。我目前拥有的是看起来像前锋的 highcharts:

伊姆古尔。每个条形代表一个单独的医院预约和他们的加班时间。但是,我只想对用户加班时间进行总计。如此有效,每个用户都有一个酒吧。

4

1 回答 1

1

有问题,你正在做:

@user = User.all
@user.hospital_bookings.each do |hospital_booking|
  ...
end

但问题是,当您执行 User.all 时,您将获得一组用户,而不是单个用户,所以如果您这样做:

@users = User.all
@users.each do |user|
  user.hospital_bookings.each do |hospital_booking|
  end
end

这将起作用,但是您可能想要显示单个用户的预订,可能您需要执行类似的操作

@user = User.find(params[:id])
@user.hospital_bookings.each do |hospital_booking|
  ...
end

顺便说一句,我也在健康行业,请随时联系我 :)

于 2013-03-01T02:18:22.877 回答