Fin*_*nnn 1 ruby-on-rails ruby-on-rails-3
我有一个简单的博客风格系统,用户可以拥有许多条目.
我试图通过执行以下操作删除所有用户条目 -
user = User.find_by_id(1)
user.entries.delete_all
Run Code Online (Sandbox Code Playgroud)
这没有成功删除相关条目,它只是将该条目中的user_id设置为nil -
<Entry id: 20, content: "test", user_id: nil, created_at: "2011-10-31 10:26:18", updated_at: "2011-10-31 10:26:18", attachment_id: nil, likes_count: nil, comments_count: nil>
Run Code Online (Sandbox Code Playgroud)
一些问题,如果你不介意 -
如何确保删除所有没有所有者的条目,并删除其相关信息?基于上面的例子 - 我想删除条目及其相关注释
我该如何最初避免这个问题?我认为我的user.entries.delete_all命令是错误的.
你知道destroy和deleteRails 之间的区别吗?如果您使用destroyRails将首先实例化要删除的记录,并调用与destroy(关联之前,之后,周围和级联)相关的所有回调.因此,你可以创建一个after_destroy回调来销毁所有与用户相关的数据,条目等,或者你声明你的has_many关系:dependent => :destroy,它自动添加一个回调来销毁所有相关的项目
| 归档时间: |
|
| 查看次数: |
2822 次 |
| 最近记录: |