Rails:模型销毁自动化多少

时间:2009-08-14 18:12:01

标签: ruby-on-rails

我目前有这种设置:

:procedures, has_many => :steps

步骤与他们创建的程序相关联。目前我的方法destroy for Procedures就是这样:

def destroy
    @procedure.destroy
end

是否有必要找到与此过程相关的所有步骤并调用它们的destroy方法,还是Rails会自动为我处理这个?

1 个答案:

答案 0 :(得分:3)

您可以使用':dependent =>获取销毁中包含的相关子项。 :破坏'选项。

所以在你的情况下它会是:

has_many => :steps, :dependent => :destroy

当程序被销毁时,会破坏步骤。

你也可以使用:

has_many => :steps, :dependent => :delete_all

哪个来自rails网站

  

:destroy和:delete_all选项   符号是如此命名,因为它们   符合所实现的行为   通过在a上调用destroy与delete   模型对象。一个触发回调,   另一个只是生成删除   SQL语句

所以delete_all不会触发destroy回调和destroy will。