【发布时间】:2020-02-08 09:36:44
【问题描述】:
我渲染了一组复选框,我想删除User 的所有Privilege。
- 当我选中其中一个复选框时,会创建一条记录。
- 当我取消选中其中一个复选框时,一条记录被删除。
我已经搜索了所有相关的问题,但不幸的是没有一个有效。
Rails 5.2.3
用户
has_many :user_privileges, class_name: 'UserPrivileges'
has_many :privileges, through: :user_privileges
特权
has_many :user_privileges, class_name: 'UserPrivileges'
has_many :users, through: :user_privileges
用户权限
belongs_to :user
belongs_to :privilege
当我想删除(取消选中)该用户在 join_table 中的 last 权限记录时,问题就出现了。
记录仍然存在,无法删除/销毁该特定记录。
我对回调的直觉回忆,我尝试了不同的使用方式dependent,但最后一条记录仍然存在。
欢迎任何提示。
谢谢
【问题讨论】:
-
使用
dependant: :destroy或向外键添加级联触发器都将删除孤立记录。但是您问的是某种复选框,这意味着涉及更多移动部件,问题甚至可能不在模型层上。 -
你的问题解决了吗?
-
@demir 还没有时间测试它。希望今天能成功
-
原来这是一个与复选框以及我们如何呈现它们有关的问题。所以我认为你的回答是正确的,但不适用于我的情况。我留在这里以备将来使用
checkboxes和has_and_belongs_to_many的链接。 sitepoint.com/save-multiple-checkbox-values-database-rails
标签: ruby-on-rails ruby has-many-through jointable