Digamos que tengo una asociación donde el usuario tiene y pertenece a muchos roles. Cuando destruyo al usuario, ¿el registro en la tabla de unión también se elimina automáticamente? ¿O necesito usar: dependent =>: destroy? ¿Qué pasa si destruyo un Papel?¿Los registros en la tabla de unión se destruyen automáticamente en la asociación HABTM?
class User < ActiveRecord::Base
has_and_belong_to_many :roles # need to use :dependent => :destroy to remove join record?
end
class Role < ActiveRecord::Base
has_and_belong_to_many :users # need to use :dependent => :destroy to remove join record?
end
Pensé que uno de los puntos de HABTM era que NO HAY modelo intermedio. Entonces esto no funcionaría a menos que existiera el modelo de RolesUsers. – ipd
HABTM requiere un modelo/tabla intermedio; de lo contrario, la relación no puede existir en una base de datos relacional. Para la tarea que @keruilin está intentando lograr, necesita anexarse a su modelo RolesUser existente o crearlo. –
Para aclarar: HABTM requiere la tabla * intermedia *, pero no el modelo adicional. Utilizará 'has_many/through' si necesita controles o campos adicionales en el modelo intermedio. – ndp