LoginSignup
0
0

More than 1 year has passed since last update.

destroy、deleteの違いを調べる

Posted at

削除の方法はこれだけではありません。オブジェクト同士がdependent: :destroyで関連付けられている場合はdestroyされますが、オブジェクト同士がdependent: :delete_allで関連付けられている場合はdeleteされるのでご注意ください。

出典

気づき

destroydeleteの違いはなんだろう?

destroy

指定した条件のレコードを削除
dependentが設定されている場合は関連付けられたモデルも削除

出典

delete

指定した条件に一致するレコードをSQLを直接実行して削除
関連付けられたモデルは削除しない

出典

def delete(id_or_array)
  delete_by(primary_key => id_or_array)
end
...

def delete_by(*args)
  where(*args).delete_all
end

出典

感想

難しい。
とりあえず関連付けされたモデルを削除できるかできないかの違い。
しか分からなかった。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0