2011-03-28 67 views
0

我是新來的鐵軌,我可以想出幾種方法來解決這個問題,但我想這樣做「鐵軌」的方式。我的問題是我有一個模型 - 考試 - 其中:has_many問題。我想在考試模型中寫一個函數,它將計算考試的分數(並將其存儲在考試模型中)。爲此,我需要從屬於考試的問題對象中讀取數據。如何根據rails3中該模型的子模型計算模型中的值?

任何提示或指向文檔的鏈接將不勝感激。

+0

信息不夠。什麼是分數?你想如何計算它? – fl00r 2011-03-28 16:15:50

回答

1

只要你沒有寫任何有關你的數據結構的東西,讓我們想象你的每個問題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