rails 模型中类型列的工厂机器人

Factory bot for type column in rails model

我有一个型号名称collaborator。 协作者字段是:(id, type, created_at, updated_at)

我还有两个型号ManagerGuest

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

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

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

结束

那么类型栏要写什么。所以它可以带经理或客人。

你应该这样做

factory :collaborator do

  factory :manager, class: Manager do
    type "manager"
  end

end

我会选择更常见的类型。创建协作者时,您始终可以覆盖此属性: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