Fra*_*nez 2 activerecord ruby-on-rails has-one
给出一个有has_one关联的两个模型:
class ShopInfo
belongs_to :shop
end
class Shop
has_one :shop_info
end
s = Shop.create
ss1 = s.create_shop_info
Run Code Online (Sandbox Code Playgroud)
在我的代码的其他地方,我做
ss2 = s.create_shop_info
Run Code Online (Sandbox Code Playgroud)
此后,ss1.shop_id 设置为 nil,因此 ss1 现在是孤儿记录。
有没有办法删除以前的记录而不是将它们设置为零?
默认情况下, has_one 关联执行nullify. 添加dependent: :destroy解决了问题。
class Shop
has_one :shop_info, dependent: :destroy
end
Run Code Online (Sandbox Code Playgroud)
如果有人想要更多信息, has_one 替换记录的 ActiveRecord 代码是这样的:
但是,如果您dependent在关联中添加一个选项,delete也会执行该方法:
| 归档时间: |
|
| 查看次数: |
1467 次 |
| 最近记录: |