factorybotで重複しないようにsequenceを用いてデータを自動で作成する(rails+rspec)

目次

マーケター、エンジニアを月1時間からジョインできるプラットフォーム

airteamは月1時間からマーケターやエンジニアに相談できるプラットフォーム。 雇うのはハードル高いけどプロをチームに入れたい。そんな経営者のためのサービスです。 相談にのる方も募集しています。

タスクなしだから月一時間からジョイン可能

作業はなくオンライン相談メイン。 月1時間からさっと経験者に継続的に相談できます。

多様な経験者を雇用するより何倍も早くチームに

あらゆるジャンルの経験者がいるので あなたのチームのノウハウの選択肢が広がります。

NDAはすでに締結済み、契約もスムーズ

契約の煩雑なやりとりはなく、NDAはすでに締結済み、書面のやりとりはありません。

factorybotでデータを作成する際に同じモデルで複数作成したいけど名前やidなどを重複させたくない場合に便利なのがsequenceになります。

sequence(:company_name) { |n| "company_#{n}" }

これでnが1+でどんどん1ずつ足されていき、重複しなくなります。factorybotの定義全体でいくと下記

spec/factories/companies.rb

FactoryBot.define do
  factory :company do
    sequence(:company_name) { |n| "company_#{n}" }   # 会社名
  end
end

上記でcompany_1,company_2とデータ生成される。