コールバックについてよく忘れてしまうことが多いので、備忘録としてしっかり言語化しておきます!
それでは![]()
コールバックとは?
必要なタイミングで呼び出せるように、あらかじめ定義しておく関数のこと!
(簡潔で分かりやすい!)![]()
RailsとJavaScriptの具体例を見ていきましょう!
Ruby on Rails
例・・・Twitterのような投稿SNSで、ユーザーが投稿を行ったら、textカラムに保存されるデータの最後に「!!!」を自動で追加してみます!
before_create :change_tweet
def change_tweet
self.text = text + "!!!"
end
end
説明していきます!
上記のコードのselfには、これから保存されるTweetクラスのインスタンスが代入されます!
そのため、self.textと記述することで、ユーザーが入力した投稿のtextカラムを取得することができます!
それに、"!!!" を付け加えてるわけですね!
Railsのコールバックまとめ
オブジェクトの状態が変わるとき、すなわちオブジェクトが生成、更新、削除されるときや、バリデーションを実行するときの前後に共通の処理を追加する仕組みです!
JavaScript
JavaScriptでは、コールバックを多用します!
例えば、jQueryのon()は、第二引数にコールバックをとります!
$('button').on('click', function() {
console.log(this);
});
*コールバック内のthisは、イベントが発火した要素を参照します。
知らず知らずのうちにコールバックを使っていたんですね!
以上となります!
コールバックは、コントローラ同様にモデルにもvalidationの直前に実行される、before_validationであったり、saveの直後に実行されるafter_saveなど様々なタイミングで実行されるコールバックが存在します。
まだまだ奥は深そうですね...
活用できればとても便利なので、たくさん活用していきたいです。
それでは、ご静聴ありがとうございました![]()