[解決済み] DestroyとDeleteの違い
2022-02-06 10:20:58
質問
とはどのような違いがあるのでしょうか?
@model.destroy
と
@model.delete
例えば
Model.find_by(col: "foo").destroy_all
//and
Model.find_by(col: "foo").delete_all
どちらを使ってもいいのでしょうか?
どのように解決するのですか?
基本的に
destroy
はモデル上で任意のコールバックを実行する一方で
delete
を使用しない。
から Rails API :
-
ActiveRecord::Persistence.delete
データベース内のレコードを削除し、このインスタンスを凍結して、(永続化できないので) 変更を加えるべきでないことを反映します。凍結されたインスタンスを返します。
この行は、レコードの主キーに対する SQL DELETE 文で単純に削除され、コールバックは実行されない。
オブジェクトの before_destroy および after_destroy コールバックや、 :dependent association オプションを強制するには、 #destroy を使用します。
-
ActiveRecord::Persistence.destroy
データベース内のレコードを削除し、このインスタンスをフリーズして、(永続化できないので)変更を加えるべきでないことを反映させます。
destroyに関連する一連のコールバックがあります。before_destroy コールバックが false を返した場合、アクションはキャンセルされ、destroy は false を返します。詳しくはActiveRecord::Callbacksを参照してください。
関連
-
[解決済み] Ruby on Railsでsimple_formを使うさまざまな方法|何が違うの?
-
[解決済み] 属性を割り当てる場合、引数としてハッシュを渡す必要がある
-
[解決済み] 属性とカラムの違いは何ですか?
-
[解決済み] rake db:migrate db:reset とdb:schema:loadの違いについて
-
[解決済み] RubyでBegin, Rescue, Ensure?
-
[解決済み] Ruby on Railsで、DateTime、Timestamp、Time、Dateの違いは何ですか?
-
[解決済み】railsの文字列とtextの違い?
-
[解決済み】ruby on railsのcollection routeとmember routeの違い?
-
[解決済み】attr_accessorとattr_accessibleの違いについて
-
[解決済み] belongs_toとhas_oneの違いは何ですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】bundle installが "Could not locate Gemfile "を返す。
-
[解決済み] サーバーに接続できませんでした。そのようなファイルまたはディレクトリがありません (PG::ConnectionBad)
-
[解決済み】ActionController::InvalidAuthenticityTokenについて
-
[解決済み】Rails 4 RoutingError: ルートが一致しない[POST]。
-
[解決済み] RailsのRootディレクトリのパス?
-
[解決済み] DestroyとDeleteの違い
-
[解決済み] Railsマイグレーションを利用してカラムをドロップする方法
-
[解決済み] RubyとRailsの "Date.today "フォーマット
-
[解決済み] レイル 4 radio_button_tag default not selected
-
[解決済み] Ruby on Rails の新規セットアップ : "Expected string default value for '--rc'; got false (boolean)".