0

我的问题是关于计算科目百分比。我有 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 没有针对每个主题进行。请帮忙。

4

2 回答 2

4

我认为这就是你想要的:

per = "#{(i.subject_mark_total.to_f / @count) * 100}%"

于 2013-08-19T09:20:56.650 回答
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 %>

抱歉,如果我误解了您的要求!

于 2013-08-19T11:37:16.317 回答