RailsコンソールでActiveRecordの削除を元に戻す方法はありますか?質問する

RailsコンソールでActiveRecordの削除を元に戻す方法はありますか?質問する

スクリプト/コンソールで信じられないほどひどい間違いを犯しました:

user.delete

同じスクリプト/コンソール セッション内からそれを元に戻す方法はありますか?

ベストアンサー1

削除されたレコードに引き続きアクセスする場合は、次のように新しいレプリカを作成するだけです。

User.new(user.attributes_hash).save

これで、まったく同じ属性 (はい、ID も) を取得して DB に保存します。これを使用して、フラッシュを使用して破棄アクションを元に戻します。

警告。メソッドを使用しUser#destroy、モデルがdependent: :destroyまたは と関係を持っている場合dependent: :delete、それらの依存レコードは、コマンドの実行時に存在していれば失われます。もちろん、削除/破棄されたレコードへのアクティブな参照、つまり変数がある場合を除きます。

おすすめ記事