HABTM 관계가 :dependent
옵션을 지원하지 않는 것이 사실입니까?habtm 관계가 지원하지 않습니다 : 종속 옵션
class Person < ActiveRecord::Base
has_and_belongs_to_many :posts, :dependent => :destroy
end
나는 레일 에지를 시험 중이다.
HABTM 관계가 :dependent
옵션을 지원하지 않는 것이 사실입니까?habtm 관계가 지원하지 않습니다 : 종속 옵션
class Person < ActiveRecord::Base
has_and_belongs_to_many :posts, :dependent => :destroy
end
나는 레일 에지를 시험 중이다.
그래, 지원하지 않습니다. See the docs. 일반적으로 habtm
은 매우 간단한 경우에만 사용되며 더 복잡한 작업이 필요한 경우 has_many :through
으로 전환해야합니다. 당신이 간단한 has_and_belongs_to_many
협회에 유지하려면
, 당신은이를 추가 할 수 있습니다 : 그 person
의 모든 항목의 조인 테이블을 삭제합니다
class Person < ActiveRecord::Base
has_and_belongs_to_many :posts
before_destroy { posts.clear }
end
합니다. 참고 :이 작업은 조인 테이블에서 레코드 만 제거하며 posts
은 삭제하지 않습니다. post
이 다른 persons
에 의해 참조 될 수 있으므로 양방향 has_and_belongs_to_many
인 경우 의미가 있습니다.
Person
및
Post
)에서 추측 난 당신이 아마 멀리
Person has_many :posts
하고
has_many
협회에
:dependent => :destroy
을 사용할 수있는 경우에
Post belongs_to :person
로 얻을 수 있다고 가정한다.
이 시도 :
class Person < ActiveRecord::Base
has_and_belongs_to_many :posts
before_destroy do
posts.each { |post| post.destroy }
end
end
당신은 레일로 posts.clear 할 필요가 없습니다 4.2 이상이 이미 처리합니다.
** 같은 모델 **에 링크 된 ** 양방향 **'has_and_belongs_to_many' 관계에'dependent : : destroy' 액션을 구현하는 방법을 추가 할 수 있습니까? – JJD
구문이 원래이 답변과 같은지 확실하지 않지만 레일 4에서 'before_destroy {posts.clear}'라고되어 있습니다. – mkralla11
감사합니다. 'before_destroy'가되도록 편집했습니다. –