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 に答える