Ruby on rails Rails-呈现复杂数据视图
这应该很简单,但我已经做了一天了,看不出一个明确的答案 我有三个基本模型:用户、评估和工作。用户处理作业,作业所有者评估用户。用户可以有许多不同的工作。每个作业都会对其相关用户进行多次评估(在作业中,每个相关用户都有相同的评估,当然分数不同。) 因此,简单地说,我想以表格形式(有点像excel工作簿)呈现数据,评估名称穿过x轴,用户名沿着y轴 所以,它看起来是这样的:Ruby on rails Rails-呈现复杂数据视图,ruby-on-rails,ruby-on-rails-3,Ruby On Rails,Ruby On Rails 3,这应该很简单,但我已经做了一天了,看不出一个明确的答案 我有三个基本模型:用户、评估和工作。用户处理作业,作业所有者评估用户。用户可以有许多不同的工作。每个作业都会对其相关用户进行多次评估(在作业中,每个相关用户都有相同的评估,当然分数不同。) 因此,简单地说,我想以表格形式(有点像excel工作簿)呈现数据,评估名称穿过x轴,用户名沿着y轴 所以,它看起来是这样的: Evaluation 1 | Evaluation 2 | Evaluation 3 __
Evaluation 1 | Evaluation 2 | Evaluation 3
_______________________________________________________
User 1 Good Poor Outstanding
User 2 Poor Good Good
user_evaluations = {"UserA"=>{:eval1=>1, :eval3=>3}}, {"UserB"=>{:eval1=>1, :eval=>3}}
我可以很容易地在x或y上显示标签,但不能同时显示两者
Q1)每个工作/用户评估都是自己的数据库记录。关于如何在x轴和y轴上构造标签,有什么建议吗
问题2)我如何确保数据(例如,用户2评估3)正确分类(绘制)?而且,如果新用户(例如,用户3)延迟加入作业,并且没有评估1或评估2
欢迎提出任何建议 一种方法是创建一个散列数组,每个散列包含用户评级和一个包含所有可用评估的数组,如
Evaluation.where(:job_id => 1)order('title').map{|e| e.title}.uniq
这将为您提供与所有_评估类似的内容:
all_evaluations = ['eval1', 'eval2', 'eval3', 'eval4']
用户评估散列将如下所示:
Evaluation 1 | Evaluation 2 | Evaluation 3
_______________________________________________________
User 1 Good Poor Outstanding
User 2 Poor Good Good
user_evaluations = {"UserA"=>{:eval1=>1, :eval3=>3}}, {"UserB"=>{:eval1=>1, :eval=>3}}
所有_求值
将用于标题行标签和每个用户记录的求值:
<tr>
<% all_evaluations.each do |eval_header| %>
<td><%= eval_header %></td>
<% end %>
</tr>
<% user_evaluations.each do |user| %>
<tr>
<td><%= user.keys %></td>
<% all_evaluations.each do |eval| %>
<td><%= user.values.first[eval.to_sym] %></td>
<% end %>
</tr>
end
结束
这里可能有一些错误/更改,但原则上应该可以工作。多个作业会是什么样子,用户行会为每个作业重复一次吗?或者,此视图一次仅显示1个职务用户评估?并且最多有3次评估?感谢您的帮助!此视图将仅显示特定作业的每个工作人员的所有评估。可以有任何数量的评估和工作。我喜欢创造性。这不是一个解决方案,但我认为方向可能是好的。非常感谢你抽出时间来帮助我!如果我有任何问题,我会告诉你的。作为跟进,我修改了代码,所有的显示都很好。再次感谢你的帮助!!