1

我有一个模型工厂,我想在创建它时跳过 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 回调发生。

4

1 回答 1

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

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

于 2012-05-09T22:21:02.630 回答