2012-05-07 37 views
1

我有一個模型的工廠,當我創建它時,我想跳過after_create回調。我已經試過以下幾個變化(從另一個計算器的問題),...Rails - Factorygirl - 跳過after_create調用

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

基本上,我希望當一個RSpec測試,我做類似的模型被保存在數據庫中...

@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) } 

因此,構建這個頁面後,跳過所有的回調。可能有一個更優雅的方式來做到這一點...考慮它,我不認爲我嘗試了一個數組作爲四種方法的最後一個參數跳過。