2012-05-07 14 views
1

モデルを作成するときにafter_createコールバックをスキップしたいモデルのファクトリがあります。 RSpecのテストで私のような何かをするとき、私は、(別のstackoverflowの質問から)次のいくつかのバリエーションを試してみた...Rails - Factorygirl - after_createをスキップする

before_create { |page| Page.skip_callback(:create, :after_create, :retrieve_stream_profile, :update_stream_profile) } 

基本的に、私はモデルをデータベースに保存することがしたいのですが...

@page = FactoryGirl.create :page 

ただし、after_createコールバックは発生しません。

答えて

0

スキップするコールバックごとに複数の行が必要なようです。私の場合は、次のようなものになります。

after_build { |page| page.class.skip_callback(:create, :after, :add_page_for_superadmins) } 
after_build { |page| page.class.skip_callback(:create, :after, :update_stream_profile) } 
after_build { |page| page.class.skip_callback(:create, :after, :grab_stream) } 
after_build { |page| page.class.skip_callback(:create, :after, :retrieve_past_insights) } 

このページを作成した後、すべてのコールバックをスキップします。これを行うもっとエレガントな方法があるかもしれません...考えて、私はスキップする4つのメソッドのそれぞれの最後のパラメータとして配列を試したとは思いません。

関連する問題