Rails依赖销毁错误

时间:2013-08-04 15:14:29

标签: ruby-on-rails model-view-controller associations dependent-destroy

我有一个Rails电影应用。显然,有一个电影桌。电影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 个答案:

答案 0 :(得分:1)

还有另一种删除电影评论的方法:

def destroy
 @movie = Movie.find(params[:id])
 @movie.comments.delete_all
 @movie.destroy
end