如何计算Rails中的主题百分比

时间:2013-08-19 07:47:12

标签: ruby-on-rails

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

2 个答案:

答案 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 %>

如果我误解了你的要求,我会道歉!