在“创建产品”页面上,我想删除用户上传但从未使用过的旧照片。所以,在我的new
行动中,我想这样做:
def new
Photo.where(:product_id => nil, :user_id => current_user).delete
@product = Product.new
@photo = Photo.new
end
,属于当前用户的任何与产品无关联的照片都会被删除。但是,我不认为我可以拨打delete
。
删除这些照片的正确语法是什么?
答案 0 :(得分:4)
简单的delete
无法使用,但如果您的where
返回一组记录,请使用delete_all
。
Photo.where(:product_id => nil, :user_id => current_user).delete_all
destroy_all
的工作方式类似,但在更高级别而不仅仅是SQL,从而调用对象回调,如after_destroy
)等。