0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

railsのコールバックについて調べてみた

Last updated at Posted at 2020-06-05

##前提
コントローラーの記述量が増えてくると、スクロールする必要性が出てきて、段々と見にくくなってきますよね。

うまくコールバックを使えるようになりたいなと思い、今回よく使いそうなコールバックをまとめてみようと思います。

Railsガイドの内容をざっくり目を通して、走り書きしたので
あれって?箇所がありましたら、すいません...&ご指摘ください。
Active Record コールバック


#コールバックとは
1.オブジェクトの生成・更新・削除のタイミングで呼び出されるメソッド
3.オブジェクトの状態が切り替わる「前」または「後」にロジックをトリガ
2.トリガに対してメソッドを共通化できる

2つ目は、うまく使いこなせれば便利だろうけど、そこまでまだ道のりは長そう。

##オブジェクトの作成,更新

**before_validation**
**after_validation**
**before_save**
**after_create**
**after_save**

##オブジェクトのdestroy

**before_destroy**
**after_destroy**

##after_initializeとafter_find

class User < ApplicationRecord
  after_initialize do |user|
    puts "AQ"
  end
 
  after_find do |user|
    puts "QA"
  end
end

>> User.new
"AQ"
=> #<User id: nil>
 
>> User.first
"AQ"
"QA"
=> #<User id: 1>

##コールバックの実行

コールバックのトリガーとなる

**create**
**create!**
**destroy**
**destroy!**
**destroy_all**
**save**
**save!**
**update_attribute**
**update**
**update!**
**valid?**

##コールバックをスキップする
検証(validation)と同じく以下のメソッドでコールバックをスキップ

**delete**
**delete_all**
**update_column**
**update_columns**
**update_all**

##コールバックの停止

**throw :abort**

今日はこんなところにしておきます。
それでは。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?