如何使用After_save条件?

nei*_*mad 3 ruby-on-rails ruby-on-rails-3

我无法在谷歌上找到它.我有3个型号.

模型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 
Run Code Online (Sandbox Code Playgroud)

怎么用rails 3来处理这个?thansk

roo*_*ler 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
Run Code Online (Sandbox Code Playgroud)

嗯,这是如何做到这一点的基本思路.您可以根据需要更改create_related_models中的代码,也可以选择使用或不使用after_save中的条件.当需要根据Model1中某个变量的值来决定是否创建Model2和Model3时,可能需要使用该条件的一种情况.我希望这适合你.谢谢.