我有两个模型之间的多对多关系如下:
#users.rb
has_many :users_to_roles
has_many :roles, through: :users_to_roles
#users_to_roles.rb
belongs_to :user
belongs_to :role
#roles.rb
has_many :users_to_roles
has_many :users, through: :users_to_roles
如果有“处于此角色”的用户,我想禁用删除角色。在这里,我找到了两个应该做这项工作的选择:
:restrict_with_exception 如果有任何关联的记录,则会引发异常 :restrict_with_error 如果有任何关联的对象,则会将错误添加到所有者
但是没有关于这个语法以及它应该如何工作的例子。
您能否帮助使其有效:
#roles.rb
has_many :users_to_roles
has_many :users, through: :users_to_roles, dependent: restrict_with_exception