FactoryGirl工厂特性内的序列不使用主序列计数器

dav*_*v_i 6 ruby ruby-on-rails factory-bot

我有以下工厂:

FactoryGirl.define do
  factory :foo do
    sequence(:name) { |n| "Foo #{n}" }

    trait :y do
      sequence(:name) { |n| "Fooy #{n}" }
    end
  end
end
Run Code Online (Sandbox Code Playgroud)

如果我跑

create :foo
create :foo
create :foo, :y
Run Code Online (Sandbox Code Playgroud)

我得到Foo 1, Foo 2, Fooy 1.但我想要Foo1, Foo2, Fooy 3.我怎样才能做到这一点?

dav*_*v_i 5

smile2day's answerthis answer得到一些提示后,我得出了以下解决方案:

FactoryGirl.define do
  sequence :base_name do |n|
    " #{n}"
  end

  factory :foo do
    name { "Foo " + generate(:base_name) }

    trait :y do
      name { "Fooy " + generate(:base_name) }
    end
  end
end
Run Code Online (Sandbox Code Playgroud)