2011-08-19 40 views
3

我無法在google上找到。 我有3個型號。如何使用帶條件的After_save?

模型1 - >的has_many模型2 - >有許多模型3

模型1具有字段,以確定有多少模型2是可能的創建。而模型2有字段可以知道必須創建多少個模型3。

當我保存模型1,我想,會自動創建模型2和模型3

我鑫卡特從模型1 after_create create_model2_record

def create_model2_record 
    for(x=0, x<=model1.field; x++){ #c sample 
    @model2 = Model2.new 
    } 
end 

如何與軌道3處理這個使用? thansk

回答

5
class Model1 << .... 
    after_save :create_related_models, :if => :some_condn? #use the condition only if needed 

    def create_related_models 
    @model2 = Model2.new 
    @model2... = ... #assign values to Model2 variables 
    if @model2.save 
     @model3 = Model3.new 
     @model3... = ... #assign values to Model3 variables 
     @model3.save 
    end 
    end 
    ... 
end 

那麼,這是一個如何完成的基本思路。您可以根據需要更改create_related_models中的代碼,也可以選擇使用或不使用after_save中的條件。在需要決定是否基於Model1中的某個變量的值創建Model2和Model3時,使用條件的一種情況可能是一種情況。我希望這對你有用。謝謝。

+0

很好,謝謝你的幫忙! – neimad

+0

歡迎您:) – rookieRailer