Rails - Factorygirl - 跳过after_create调用

时间:2012-05-07 15:51:49

标签: ruby-on-rails rspec factory-bot

我有一个模型的工厂,我想在创建它时跳过after_create回调。我尝试了以下几种变体(来自另一个stackoverflow问题),...

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

基本上,我想在rspec测试中将模型保存在数据库中我做的事情......

  @page = FactoryGirl.create :page 

但是,我不希望任何after_create回调发生。

1 个答案:

答案 0 :(得分: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) }

因此,在构建此页面后,跳过所有回调。可能有一种更优雅的方式来做到这一点...想一想,我认为我没有尝试将数组作为跳过的四种方法中每种方法的最后一个参数。