我有一个型号名称collaborator
。
协作者字段为:(ID,类型,created_at,updated_at)
我还有另外两个模型Manager
和Guest
。
Manager
和Guest
都扩展了Collaborator
模型。因此,协作者类型字段只能有两个值Manager
或Guest
。
因此,在为协作者模型编写工厂时。我被卡住了。
FactoryBot.define do
factory :collaborator do
#what to keep
type { '' }
end
结束
那么要为type列写什么。这样可以带经理或客人。
答案 0 :(得分:1)
您应该做这样的事情
factory :collaborator do
factory :manager, class: Manager do
type "manager"
end
end
答案 1 :(得分:1)
我会选择一种更常见的类型。创建协作者时,您始终可以覆盖以下属性:create(:collaborator , type: 'manager')
。
或者您可以再定义2个工厂-一个用于经理,一个用于访客,就像:
FactoryBot.define do
factory :collaborator do
factory :manager, class: Manager do
type { 'manager' }
end
factory :guest, class: Guest do
type { 'guest' }
end
end
end