사용자가 많은 역할을 담당하는 관계가 있다고 가정 해 보겠습니다. 사용자를 파기하면 조인 테이블의 레코드도 자동으로 제거됩니까? 아니면 dependency => : destroy를 사용해야합니까? 역할을 파괴하면 어떨까요?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
HABTM의 요점 중 하나는 중간 모델이 없다고 생각했습니다. 그래서 이것은 RolesUsers 모델이 존재하지 않으면 작동하지 않을 것입니다. – ipd
HABTM은 중간 모델/테이블을 필요로합니다. 그렇지 않으면 관계가 관계형 데이터베이스에 존재할 수 없습니다. @keruilin이 수행하려고하는 작업의 경우 기존의 RolesUser 모델에 추가하거나 생성해야합니다. –
명확히하기 : HABTM에는 중간 * 테이블 *이 필요하지만 추가 모델은 필요하지 않습니다. 중간 모델에서 추가 컨트롤이나 필드가 필요하면'has_many/through'를 사용합니다. – ndp