【发布时间】:2013-08-05 08:22:50
【问题描述】:
我有一个 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(显示用户的cmets)我会收到一个错误,因为该评论仍在显示并且仍然属于电影。
所以我得到了这种错误Unable to find Movie with id = 58
Movies_controller.rbdestroy action有没有办法说什么时候删除电影,同时删除所有带有movie_id => params[:id]的cmets
【问题讨论】:
-
:dependent应该是这一行中的一个符号:has_many :comments, :dependent => :destroy。如果这是您的实际代码中的拼写错误,请修复并查看是否可以解决问题。该线程可能会帮助您解决有关MoviesController#destroy操作的问题:stackoverflow.com/questions/3547616/… -
我的代码现在不在我身边,但我确实认为在我的模型中冒号已经存在,所以这只是问题而不是代码的问题。已编辑。
标签: ruby-on-rails model-view-controller associations dependent-destroy