Rails模型中类型列的工厂bot

时间:2018-09-21 06:25:20

标签: ruby-on-rails rspec factory-bot

我有一个型号名称collaborator。 协作者字段为:(ID,类型,created_at,updated_at)

我还有另外两个模型ManagerGuest

ManagerGuest都扩展了Collaborator模型。因此,协作者类型字段只能有两个值ManagerGuest

因此,在为协作者模型编写工厂时。我被卡住了。

FactoryBot.define do
factory :collaborator do
  #what to keep
  type { '' }
end

结束

那么要为type列写什么。这样可以带经理或客人。

2 个答案:

答案 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