我的问题是关于计算受试者百分比。我有EnterMark模型。其中包含section_id。使用它我可以得到特定部分的学生人数。但是在计算每个主题的百分比时会出现问题(在图表视图中)。
控制器
@mark_percent = EnterMark.where(:school_id => params[:school], :course_id => params[:course], :section_id => params[:view])
查看
<% @mark_percent.each do |i| %>
<% @count = i.students.count %>
['<%= i.subject.subject %>', <%= (i.subject_mark_total) / @count %>],
<% end %>
但@count没有针对每个主题。请帮忙。
答案 0 :(得分:4)
我认为这就是你想要的:
per = "#{(i.subject_mark_total.to_f / @count) * 100}%"
答案 1 :(得分:0)
所以你试图找到每门课程的平均值,是吗?就像Pierre-Louis Gottfrois所说,你应该尝试不在视图中定义变量。
在Course.rb模型中,你可以做这样的事情:
def avg
total = self.subject_mark_total.to_f
students = self.students.count
# get average of scores and round to two decimal places
average = total / students
average.round(2)
end
并在视图中调用<%= course.avg %>
如果我误解了你的要求,我会道歉!