我对rails非常陌生,我开始学习MVC框架和RESTful架构背后的概念。对我来说一个灰色地带的问题是后处理数据背后的逻辑可能最好由模型,视图或控制器来处理?直观地说,它对我有意义,它属于控制器,但我不确定什么是最佳实践。例如,如果我有资源学生,并且我想通过总计他们的总分并将其除以总可能分数来显示他们的最终成绩,那么我将把这个计算放在哪里?如果我想计算班级平均值怎么办?还是他们的GPA?
答案 0 :(得分:0)
我倾向于遵循Fat Model Skinny Controller的口头禅。计算值应该是模型中的方法。您应该使用实例方法计算单个学生成绩,并使用课程方法计算总课程平均值。
Class Student < ActiveRecord::Base
POSSIBLE_POINTS = 100
def grade
points / POSSIBLE_POINTS
end
def self.class_averags
students = all #or use where to filter results
total = students.inject(0){ |total, student| total + student.grade }
total / students.size
end
end
希望这有帮助。
答案 1 :(得分:0)