簡體   English   中英

為 Rails 中的自引用關聯構建工廠

[英]Build factories for self referential associations in rails

我有一個典型的需求,我必須按如下方式處理用戶對象

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

您需要在這里建立兩個工廠,一個用於有引用者的用戶,第二個用於沒有引用者的用戶 - 否則您將進入無限創建循環。 您可以為此使用特征:

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

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

FactoryGirl.create(:user, :with_referrer)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM