[解決済み】delete_allとdestroy_allは?
2022-04-12 06:39:32
質問
テーブルからレコードを削除するための最良の方法を探しています。例えば、私はユーザーIDが多くのテーブルにわたっているユーザーを持っています。私はこのユーザーと、すべてのテーブルで彼のIDを持つすべてのレコードを削除したい。
u = User.find_by_name('JohnBoy')
u.usage_indexes.destroy_all
u.sources.destroy_all
u.user_stats.destroy_all
u.delete
これはうまくいって、すべてのテーブルからユーザーのすべての参照を削除するのですが、私は
destroy_all
は非常に処理が重いので
delete_all
. これは、そのユーザーを自分のユーザーテーブルから削除するだけで、そのユーザーの
id
のレコードはすべてnullにされますが、他のテーブルのレコードはそのまま残ります。どなたか、このようなタスクを実行するための正しいプロセスを教えていただけませんか?
なるほど
destroy_all
は
destroy
関数が関連するすべてのオブジェクトに適用されますが、正しい方法を確認したいだけです。
どのように解決するのですか?
おっしゃるとおりです。ユーザーと関連するオブジェクトをすべて削除したい場合 ->
destroy_all
しかし、関連するすべてのオブジェクトを抑制せずに、ユーザーだけを削除したい場合 ->
delete_all
この投稿によると: Rails :dependent => :destroy VS :dependent => :delete_all
-
destroy
/destroy_all
: 関連するオブジェクトは、そのdestroyメソッドを呼び出すことで、このオブジェクトと一緒に破棄されます。 -
delete
/delete_all
: 関連するすべてのオブジェクトは、その :destroy メソッドを呼び出すことなく直ちに破棄されます。
関連
-
[解決済み】TypeError: SymbolからIntegerへの暗黙の変換がない。
-
[解決済み] nil:NilClass の未定義メソッド `each'... なぜでしょうか?
-
[解決済み] heroku open - no app specified
-
[解決済み] Rubyで変数をインクリメントする [重複]。
-
[解決済み] Railsマイグレーションを利用してカラムをドロップする方法
-
[解決済み] 検索 vs 発見する by vs どこに
-
[解決済み] Railsはsaveでモデル内の検証をスキップしますか?
-
[解決済み] bundle install --without production は何をするのですか?
-
[解決済み] レイル 4 radio_button_tag default not selected
-
[解決済み] Railsでグループとカウント
最新
-
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 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】Rails。Ruby on Railsの移行でデータベースカラムの名前を変更するにはどうすればよいですか?
-
[解決済み】PG::ConnectionBad: fe_sendauth: パスワードが供給されない
-
[解決済み] nil:NilClass の未定義メソッド `each'... なぜでしょうか?
-
[解決済み] ウェブパッカーがアプリケーションを見つけ出せない
-
[解決済み] Herokuの問題 : あなたが探しているページは存在しません。
-
[解決済み] rails consoleを起動するとRailsのイニシャライザーが呼ばれる?
-
[解決済み] Heroku: 既存のrailsアプリにseeds.rbをプッシュする方法?
-
[解決済み] レイル 4 radio_button_tag default not selected
-
[解決済み] Rails 4で、以前のバージョンのRailsでattr_accessibleを使用していた状況に遭遇した場合、Forbidden Attributes Errorが発生する。
-
[解決済み】Rails :dependent => :destroy VS :dependent => :delete_all