나는 영화 및 관련 장르의 데이터베이스가 있습니다. 그 영화의 모든 관계없이 그 영화는 다른 장르가 있거나하지 않을 경우의 삭제 얻을 -레일 4에있는 객체와 관련된 모든 레코드를 삭제합니다.
class Genre < ActiveRecord::Base
has_many :movie_genres
has_many :movies, through: :movie_genres, dependent: delete_all
before_destroy :delete_movie
private
def delete_movie
self.movies.delete_all
end
end
class Movie < ActiveRecord::Base
has_many :movie_genres
has_many :genres, through: :movie_genres
end
내 목표는 장르가 삭제를 얻을 때이다. 나는 dependent : : destroy를 장르 모델에 붙이려고했으나 조인 테이블 레코드 만 삭제되었다. 나는 또한 before_destroy 콜백을 사용하여 장르를 삭제하기 전에 영화를 삭제하려고했지만 그 중 하나는 작동하지 않는 것으로 보입니다.
"조인 테이블 레코드 만 삭제 되나요?" – Meier
delete_movie를 사용할 때 정확히 어떤 일이 발생합니까? 어떤 방식 으로든 작동하지 않습니다. 메서드가 호출됩니까? 그것은 SQL을 생성합니까? – Meier