我对 Rails 很陌生,我开始学习 MVC 框架和 RESTful 架构背后的概念。一个对我来说一直是灰色地带的问题是,后处理数据背后的逻辑可能最好由模型、视图还是控制器来处理?直觉上,它属于控制器对我来说是有意义的,但我不确定什么被认为是最佳实践。例如,如果我有一个资源学生,并且我想通过将他们的总分相加并除以可能的总分来显示他们的最终成绩,我应该在哪里计算?如果我想计算班级平均值怎么办?还是他们的 GPA?
问问题
288 次
2 回答
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
希望这可以帮助。
于 2012-10-08T20:15:07.487 回答