我有一个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]
的所有评论
答案 0 :(得分:1)
还有另一种删除电影评论的方法:
def destroy
@movie = Movie.find(params[:id])
@movie.comments.delete_all
@movie.destroy
end