Ruby on rails 工厂女孩如何使用为孩子声明的特征创建HABTM关联?
如何利用工厂女孩和为孩子声明的特征建立HABTM关系 这基本上就是我要做的:Ruby on rails 工厂女孩如何使用为孩子声明的特征创建HABTM关联?,ruby-on-rails,testing,factory-bot,Ruby On Rails,Testing,Factory Bot,如何利用工厂女孩和为孩子声明的特征建立HABTM关系 这基本上就是我要做的: factory :site do name 'some domain name' trait :rejected do rejected true end trait :processing do processing true end end factory :user do trait :bob do name 'Bob' after(:create)
factory :site do
name 'some domain name'
trait :rejected do
rejected true
end
trait :processing do
processing true
end
end
factory :user do
trait :bob do
name 'Bob'
after(:create) do |user, evaluator|
create_list(:rejected, 1, users: [user])
create_list(:processing, 1, users: [user])
end
end
end
class User < ActiveRecord::Base
has_and_belongs_to_many :sites
end
工厂:现场操作
名称“某个域名”
特点:拒绝做
拒绝真实
结束
特点:处理能力强
处理真实
结束
结束
工厂:用户做什么
特点:鲍勃
叫‘鲍勃’
在(:create)do | user之后,求值器|
创建_列表(:拒绝,1,用户:[用户])
创建_列表(:正在处理,1,用户:[用户])
结束
结束
结束
类用户
我一直在寻找像上面这样的例子,但到目前为止,我发现的所有东西都只有父工厂的特性,并且只使用子工厂。当我试图引用子特征时,我得到一个工厂未注册的错误
此外,名单不会改变。我不需要这是动态的。我知道我想给每个用户提供哪些站点。我认为问题在于您没有在创建列表调用中指定您的工厂(:site
)
尝试:
或者只是:
after(:create) do |user, evaluator|
user.sites << build(:site, :rejected)
user.sites << build(:site, :processing)
end
after(:create)do |用户、评估者|
user.sites我认为问题在于您没有在创建列表调用中指定您的工厂(:site
)
尝试:
或者只是:
after(:create) do |user, evaluator|
user.sites << build(:site, :rejected)
user.sites << build(:site, :processing)
end
after(:create)do |用户、评估者|
user.sites是的,你忘了提到工厂名称,答案如下:)是的,你忘了提到工厂名称,答案如下:)