データの削除
class TestController < ApplicationController def index person = Person.find(1) person.destroy end end
データの削除時はデータを変数に代入し、
もしくは
と記入します。
updateとは違い、whereメソッドなどで複数のデータが入っているときはエラーとなります。
destroyは
1対多の1側を削除時に紐づいた多側のデータも削除される
deleteは
1側のデータを削除時にテーブルと紐づいているフィールドの値がそのままになるので整合性が崩れる
コールバックが呼び出されない
の違いがあります。
ですので多側のデータの削除でコールバックがないときのみdeleteを使用するようにしてください。
迷ったらdestroyを使用するのが安全です。
コールバックに関してはまた別のページで記載します。
データを代入した変数.destroy
もしくは
データを代入した変数.delete
と記入します。
updateとは違い、whereメソッドなどで複数のデータが入っているときはエラーとなります。
destroyは
1対多の1側を削除時に紐づいた多側のデータも削除される
deleteは
1側のデータを削除時にテーブルと紐づいているフィールドの値がそのままになるので整合性が崩れる
コールバックが呼び出されない
の違いがあります。
ですので多側のデータの削除でコールバックがないときのみdeleteを使用するようにしてください。
迷ったらdestroyを使用するのが安全です。
コールバックに関してはまた別のページで記載します。