2016-03-11 43 views
1

我有一個典型的要求自參照協會建廠,我必須解決用戶對象如下在導軌

user.referrer and user.referrers. 

基本上,用戶可以指不止一個人,一個人應該由一個特定的被稱爲用戶。所以我建立如下協會。他們工作很好。

class User < ActiveRecord::Base 
    attr_accessible :account_number, :display_name, :referrer_id 

    has_many :referrers, :class_name => "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 
+0

@BilalMaqsood我已經更新了我的問題,請一次 – pramod

+0

檢查它的任何幫助,請.. – pramod

+0

的關係卻是不工作。請看看他們。 –

回答

1

這裏需要建立兩個工廠,一個是用引用和第二個用戶沒有引薦用戶 - 否則,你最終會在無限創作循環中。您可以使用性狀這樣的:

factory :user do 
    gender :male 
    name "super test" 

    trait :with_referrer do 
    association :referrer, factory: :user 
    end 
end 

FactoryGirl.create(:user, :with_referrer)