我有一个模型类FactoryGirl
。在这个模型中,我定义了一些特性。但是在某些特性中,我不想让FactoryGirl
回调被调用,但我不知道该怎么做。以下是我的代码示例:
FactoryGirl.define do
factory :product do
sequence(:promotion_item_code) { |n| "promotion_item_code#{n}" }
after :create do |product|
FactoryGirl.create_list :product_details, 1, :product => product
end
trait :special_product do
# do some thing
# and don't want to run FactoryGirl callback
end
end
在这段代码中,我不希望
:special_product
特性在 create
后被调用。我不知道如何做到这一点。@Edit: 我之所以这样做,是因为有时我想从父对象生成数据到子对象,但有时我想反过来从子对象生成到父对象。因此,当我从子对象回到父对象时,会调用父对象的回调函数,因此子对象会被创建两次。这不是我想要的结果。
@Edit 2: 我的问题是防止 FactoryGirl 的回调函数被调用,而不是 ActiveRecord 模型的回调函数。
谢谢!