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.rb
destroy action
сказать, когда фильм будет удален, а также удалить все комментарии с movie_id => params[:id]
1 ответ
Есть еще один способ удалить комментарии фильма:
def destroy
@movie = Movie.find(params[:id])
@movie.comments.delete_all
@movie.destroy
end