Rails-зависимая ошибка уничтожения

У меня есть приложение Rails Movie. Очевидно, с таблицей фильмов. Фильм has_many :comments, :dependent => :destroy и комментарий belongs_to :movie, Комментарий также belongs_to :user поэтому, когда новый пользователь комментирует фильм, этот комментарий будет отображаться на его users#show стр.

Если пользователь комментирует фильм, комментарий будет отображаться на его странице. Я также могу пойти в localhost:3000/comments/:id чтобы увидеть страницу этого комментария

Теперь моя проблема заключается в следующем:

Если я затем уничтожу или удалю этот фильм с этим комментарием, комментарий на самом деле не будет удален. Я все еще могу пойти в localhost:3000/comments/:idи если я пойду к users/:id/reviews (где отображаются комментарии пользователя) Я получаю сообщение об ошибке, потому что этот комментарий все еще отображается и все еще принадлежит фильму. Так я получаю ошибку такого рода Unable to find Movie with id = 58

Есть ли способ в Movies_controller.rbdestroy action сказать, когда фильм будет удален, а также удалить все комментарии с movie_id => params[:id]

1 ответ

Решение

Есть еще один способ удалить комментарии фильма:

def destroy
 @movie = Movie.find(params[:id])
 @movie.comments.delete_all
 @movie.destroy
end
Другие вопросы по тегам