我无法在谷歌上找到它。 我有3个型号。
模型1 - > has_many model 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
如何用rails 3处理这个问题? thansk
答案 0 :(得分: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时,可能需要使用该条件的一种情况。我希望这适合你。感谢。