Rails|FactoryGirlでユニークな値を指定したいとき
背景とやりたいこと
ユニーク制約を付与したため、create_list
で一度にテストデータを作成しようとした場合、値が重複しているとお叱りを受けた。
ActiveRecord::RecordNotUnique: Mysql2::Error: Duplicate entry
修正前
user_name
はユニークな値になるように登録させたい。
↓では重複になってしまった。
FactoryGirl.define do factory :user do name "My Name" user_name SecureRandom.hex(6) age 20 end end
修正後
ラムダにすればユニークな値で登録される。
FactoryGirl.define do factory :user do name "My Name" user_name { SecureRandom.hex(6) } age 20 end end
参考URL
ruby on rails - Use a factory's sequence to generate unique phone numbers - Stack Overflow