問題一覧に戻る
中級高度なデータベース
問題41: コールバック - before_save/after_create
Railsのコールバックを使ってオブジェクトのライフサイクルの特定のポイントでコードを実行する方法を学習します。before_save、after_create、before_destroyなどのコールバックを使うと、データの正規化、通知の送信、関連レコードのクリーンアップなどのタスクを自動化できます。
class User < ApplicationRecord
# 保存前にemailを正規化
:normalize_email
# 作成後にウェルカムメールを送信
after_create :
private
# emailを小文字に変換
def normalize_email
self.email = email.
end
# ウェルカム通知を送信
def send_welcome_email
UserMailer.welcome(self).deliver_later
end
end