为rails中的自引用关联构建工厂

我有一个典型的要求,我必须解决用户对象如下

user.referrer and user.referrers. 

基本上,用户可以引用多个人,并且一个人应该由一个特定用户引用。 所以我建立如下关联。 他们工作得很好。

 class User  "User", :foreign_key => "referrer_id" belongs_to :referrer, :class_name => "User" end 

现在我想在Rspec中测试一下。 我正在使用工厂女孩,所以任何人都帮我建工厂。

我尝试如下,但最终出现错误

 factory :user do gender :male name "super test" ..... ..... factory :referrer do end association :referrer end 

您需要在这里构建两个工厂,一个用于具有引用者的用户,另一个用于没有引用者的用户 – 否则您将最终进入无限创建循环。 您可以使用以下特征:

 factory :user do gender :male name "super test" trait :with_referrer do association :referrer, factory: :user end end FactoryGirl.create(:user, :with_referrer)