为铁路中的自引用关联建立工厂

2024-05-08

我有一个典型的要求,我必须按如下方式处理用户对象

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)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

为铁路中的自引用关联建立工厂 的相关文章

随机推荐