0

在“创建产品”页面上,我想删除用户上传但从未使用过的旧照片。所以,在我的new行动中,我想这样做:

def new 
  Photo.where(:product_id => nil, :user_id => current_user).delete
  @product = Product.new
  @photo = Photo.new
end

,属于当前用户但与产品没有关联的任何照片都会被删除。但是,我不认为我可以打电话delete

删除这些照片的正确语法是什么?

4

1 回答 1

4

一个简单的delete行不通,但如果您where返回一组记录,请使用delete_all.

Photo.where(:product_id => nil, :user_id => current_user).delete_all

destroy_all类似地工作,但在比 SQL 更高的级别上,因此调用对象回调,如after_destroy) 等。

于 2013-07-15T19:49:58.917 回答