在我的應用程序中,我有一個Question模型和一個QuestionResult模型。它們通過Question has_one QuestionResult相關,我試圖讓Rails在創建Question條目時自動創建其相關的QuestionResult條目。使用before_create在db中自動創建相關對象
這是我的問題模型曾嘗試:
before_create :create_result_record_and_populate_difficulty
has_one :question_result, :dependent => :destroy
def create_result_record_and_populate_difficulty
self.build_question_result(:current_difficulty => initial_difficulty)
end
最初的困難簡直就是裏面我是用設置在相關QuestionResult模型當前困難問題的模型的屬性。我知道該方法被調用,因爲我已經在方法中放置了一個「raise」語句,並且當我運行「rake db:seed」來添加一些問題時觸發異常。
但是,即使數據庫種子成功,也沒有在數據庫中發現QuestionResult條目。
這應該怎麼辦?請幫助啓發我:)
感謝您的回覆。其實我用build是因爲我使用的是before_create方法。如果我使用create而不是使用before_create構建,它會抱怨,因爲Question對象不會被分配一個id,這是QuestionResult對象的必需字段。一旦在Question對象上調用保存,它也會自動保存QuestionResult對象。然而,你的答案幫助我找到了問題 - 這是一個額外的QuestionResult.deleteAll在我的seeds.rb謝謝! – nightscent 2013-03-11 14:38:01