2011-04-04 76 views
1

我想将一组上传的图片与帖子相关联。在我的控制,我用下面的代码:相关记录不会在Rails中删除

image_uploads = params[:image_uploads] 
iu = ImageUpload.find(image_uploads) 
@post.image_uploads = iu 

虽然这确实让上传的图片来自@post.image_uploads访问,我认为它不会将这些图像与关联后,因为当帖子被删除,图片上传不会被删除 - 尽管我已经使用:dependent=>:destroy来处理他们的关系。

> Post.first.delete 
=>[] 
> ImageUpload.all 
=> [#<ImageUpload id: 3 ...>] 

这是模型:

class Post < ActiveRecord::Base 
has_many :image_uploads, :dependent => :destroy 

end 

class ImageUploads < ActiveRecord::Base 
belongs_to :post 

end 

我能做些什么,以确保级联删除工作?

回答

5

尝试代替:

Post.first.destroy 

destroy调用定义的回调,而delete删除使用SQL直接记录而不创建AR对象。

0

你对我做的事似乎是正确的。你有一个帖子,图片上传依赖于帖子,当帖子被删除时你应该删除它们。我可能是错的,但我什么都看不到。

但是,我看到一些可能导致严重问题的东西,它也可能是问题的根源(这是很多来源)。

你有一个以S结尾的模型,不是一个好主意。帮你一个忙,并改为ImageUpload请:)