如何删除Rails中的内容?

时间:2013-07-15 19:45:36

标签: ruby-on-rails ruby

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

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

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

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

1 个答案:

答案 0 :(得分:4)

简单的delete无法使用,但如果您的where返回一组记录,请使用delete_all

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

destroy_all的工作方式类似,但在更高级别而不仅仅是SQL,从而调用对象回调,如after_destroy)等。