一时还不知道应该怎么去 google 这个问题,先发帖来问问思路哈~
目标结果是一个统计工作量的表,多个用户对应多个项目的工作量,如下图:
在 model 里面,我是用一个 workload 表的,有 user_id, project_id。 user has_many workloads, project has_many workloads. 现在这个统计表的话,它是要确定对应着每个项目每个人的工作量。那就是双维度的确定,既要是这个 project,又要正好是这个 user。 一般大家是怎么做的?难道要先来个二维数组?workload[project][user] 什么的?
controller 中
def fetch_workloads_data(pws)
workloads_table = Hash.new(0)
pws.each do |pw|
pw.workloads.each do |wl|
workloads_table[[wl.project_id, pw.user_id]] += wl.day_count
end
end
return workloads_table
end
view 中
<% @projects.each do |project| %>
<tr>
<td><%= "#{project.name}-#{project.id}" %></td>
<% @users.each do |user| %>
<td><%= @workloads_table[[project.id, user.id]] %></td>
<% end %>
</tr>
<% end %>
暂时的解决方案是: