コールバックとは
登録や削除といった重要なイベントの前後に任意の処理を呼び出す仕組み。
コールバックの実装
簡単な実装例を以下に示します。
例)生成されたオブジェクトのname属性にデータが入っていない場合、’名前なし’をname属性にいれる。
(name: nil => name: '名前なし')にする。
models/task.rb
class Task < ApplicationRecord
before_validation :set_nameless_name
...
private
def set_nameless_name
self.name = '名前なし' if name.blank?
end
...
end
ここではbefore_validation
を使ったので検証する前に処理が行われています。