我无法在谷歌上找到那个。
我有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

如何用 rails 3 处理这个问题?
谢谢

最佳答案

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 的情况。我希望这对你有用。谢谢。

关于ruby-on-rails - 如何在条件下使用 After_save?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/7116147/

10-12 23:52