2011-11-09 94 views
0

給定模塊我與模型之間的下列關係的Rails 3應用程序:創建所有的孩子在創建

Course ---[ 1:n ]---> Module 

而且當用戶參與到Course我有這樣的:

Enrollment ---[ 1:n ]---> ModuleStatus 

每個Enrollment也總是有一個用戶和課程

問題:我怎樣才能強制執行使得w如果爲用戶創建了Enrollment,則系統會繼續併爲給定的Course具有的每個模塊創建一個ModuleStatus

我應該使用回調來執行此創建嗎?

如果是這樣,那麼回調適合在這裏?會不會是after_create

謝謝!

回答

1

簡答:是的,使用after_create當然有道理。它可能看起來像這樣(顯然你可以填寫你的建模細節)。

class Enrollment 
    belongs_to :user 
    belongs_to :course 
    has_many :module_statuses 

    after_create :generate_module_statuses 

    def generate_module_statuses 
    self.course.modules.each do |module| 
     self.module_statuses.create(:the_correct_attributes) 
    end 
    end 

end