如何根据rails3中该模型的子模型计算模型中的值?

问题描述:

我是新来的铁轨,我可以想出几种方法来解决这个问题,但我想这样做“铁轨”的方式。我的问题是我有一个模型 - 考试 - 其中:has_many问题。我想在考试模型中写一个函数,它将计算考试的分数(并将其存储在考试模型中)。为此,我需要从属于考试的问题对象中读取数据。如何根据rails3中该模型的子模型计算模型中的值?

任何提示或指向文档的链接将不胜感激。

+0

信息不够。什么是分数?你想如何计算它? – fl00r 2011-03-28 16:15:50

只要你没有写任何有关你的数据结构的东西,让我们想象你的每个问题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