我的两个模型之间有一个简单的has_many/belongs_to关联.我的问题是,当我删除一个我不再需要的对象(来自父模型)时,子模型对象中的外键仍然存在.例如:
森林
has_many :trees, :inverse_of => :forest
树
belongs_to :forest
当我删除一个Forest对象时,所有关联的Tree对象仍然包含一个值forest_id,这会导致前端出错.有什么样的钩子before_destroy可以使用吗?虽然我在想,这可能是一个非常简单的解决方案.
谢谢
我想你想要的:dependent选择.
has_many :trees, :inverse_of => :forest, :dependent => :nullify
Run Code Online (Sandbox Code Playgroud)
这将把外键设置nil为销毁关联模型的时间.您还可以使用它:dependent => :destroy来销毁模型.
这里的文档可能有所帮助.
| 归档时间: |
|
| 查看次数: |
960 次 |
| 最近记录: |