如何根据rails3中该模型的子模型计算模型中的值?
问题描述:
我是新来的铁轨,我可以想出几种方法来解决这个问题,但我想这样做“铁轨”的方式。我的问题是我有一个模型 - 考试 - 其中:has_many问题。我想在考试模型中写一个函数,它将计算考试的分数(并将其存储在考试模型中)。为此,我需要从属于考试的问题对象中读取数据。如何根据rails3中该模型的子模型计算模型中的值?
任何提示或指向文档的链接将不胜感激。
答
只要你没有写任何有关你的数据结构的东西,让我们想象你的每个问题has_got布尔correct
字段。并且您的考试已获得Integer total_score
字段。所以在检查后应该用正确答案来计算所有问题:
class Exam < ActiveRecord::Base
has_many :questions
before_save :set_score
def set_score
total_score = questions.where(:correct => true).count
end
end
+0
谢谢fl00r。这正是我所期待的。你猜的数据模型与我正在做的很相似。我喜欢使用before_save方法保存分数的想法。再次感谢。 – spinlock 2011-03-28 16:20:40
信息不够。什么是分数?你想如何计算它? – fl00r 2011-03-28 16:15:50