我正在尝试执行以下操作:
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>
controller.rb
def index
@user = User.all
@hospital_bookings = HospitalBooking.scope
端 端
我要做的是为每个用户,迭代他们的预订并总结他们的overtime
。
模型
User.rb
has_many :hospital_bookings
Hospital_booking
belongs_to :user
这将有效地做到的是让用户和他们的加班时间相加。但由于某种原因,这是行不通的。我现在所拥有的是看起来像前锋的高等领域:
Imgur。每个酒吧代表一个单独的医院预订和他们的加班。但是我想将用户加班加起来。所以实际上每个用户只有一个吧。
答案 0 :(得分: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
顺便说一句,我也是健康产业的,随时可以随便打电话给我:)