Rails,如何为嵌套模型集设置依赖销毁?

发布于 2024-11-03 03:14:53 字数 706 浏览 1 评论 0原文

可能的重复:
Rails - 帮助理解如何使用 :dependent => :销毁

我有以下模型:

User
Permission (user_id, group_id)
Group
Conversation (group_id)
ConversationParticipation (conversation_id)

我想要在我的 Permissions 模型中做的是,当权限被销毁时,根据 group_id 和 user_id 删除所有相关的 ConversationParticipations。

我尝试过这个:

class Permission < ActiveRecord::Base
has_many :conversation_participations, :through => :group, :source => :conversations, :dependent => :destroy

但这似乎还没有解决问题。建议?

谢谢

Possible Duplicate:
Rails - Help understanding how to use :dependent => :destroy

I have the following models:

User
Permission (user_id, group_id)
Group
Conversation (group_id)
ConversationParticipation (conversation_id)

What I want to do in my Permissions model is, when a permission is destory, delete all the related ConversationParticipations based on the group_id and user_id.

I tried this:

class Permission < ActiveRecord::Base
has_many :conversation_participations, :through => :group, :source => :conversations, :dependent => :destroy

But that doesn't seem to be cutting it just yet. Suggestions?

Thanks

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

滴情不沾 2024-11-10 03:14:53

has_many 的 Rails 文档的一部分

:依赖

如果设置为:销毁所有
关联对象被销毁
通过调用他们的
破坏方法。如果设置为:delete_all
所有关联的对象都被删除
而不调用他们的 destroy 方法。
如果设置为:无效所有关联
对象的外键设置为 NULL
而不调用他们的保存回调。
如果设置为:限制该对象不能
如果有关联则删除
目的。

警告:此选项是
与 :through 一起使用时被忽略
选项。

您始终可以尝试回调

Part of the Rails Documentation for has_many

:dependent

If set to :destroy all the
associated objects are destroyed
alongside this object by calling their
destroy method. If set to :delete_all
all associated objects are deleted
without calling their destroy method.
If set to :nullify all associated
objects’ foreign keys are set to NULL
without calling their save callbacks.
If set to :restrict this object cannot
be deleted if it has any associated
object.

Warning: This option is
ignored when used with :through
option.

You could always try callbacks.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文