Rails:モデルのコールバック(before_filter/before_action)などをスキップする

記事公開日:
最終更新日:

Sponsored Links

例えば、ユーザーモデルで コールバック(例として、before_create) を利用している際に、seedファイル(もしくはその他のモデル)などにて処理をスキップしたい場合、以下のようなコードを付け加えます。
db:seed の初期データを挿入する時や特定のモデルにて、処理をスキップさせたい時などに便利です。

例として、ユーザーモデルにおいて before_create を利用しているとします。

#User Model
class User < ActiveRecord::Base
  before_create :set_something
  private
  def set_something
    #something
  end
end

before_create をスキップするコードを seed.rb などに追加する。

#seed.rb
User.skip_callback(:create, :before, :set_something)

他の例として before_save を利用している場合には、以下のようなコードになります。

#Seed
User.skip_callback(:save, :before, :set_something)

About
Amelt.net,LLCの創業者で、費用対効果の高い統合webマーケティングによりビジネスパートナーとして継続的にサポート。詳しいより。ブログの更新情報facebookページGoogle+そしてTwitter、またRSSfeedlyLINE@にてお知らせしていますのでフォローよろしくお願い致します。


Sponsored Links