user role
has_and_belongs_to_many
role.destroy: 关联表user_roles先删除记录,再role删除。
has_many :through
user.roles = Role.all
user.roles 接收的是一个集合,Role.first不是集合,如果想将user.roles 设为Role.first,可以
user.roles = [] user.roles << Role.first 或 user.roles = Role.where(:id => 3或:id=>[1,2,3])假设是3
role.destroy: 如果在user/role不配置has_many :dependent => :destroy 只删除role不删除中间表,配置了会删除role,和中间表,但关联的user不会被删除 has_and_belongs_to_many不需要配置就可以直接删除相应内容
多对多删除操作:都是先删除关联,再删除自身,不删除关联对象