1. ホーム
  2. ruby-on-rails

[解決済み] factory_girl で Faker を使用すると、データが重複してしまう。

2023-05-07 10:39:15

質問

Faker gemを使って、ファクトリーに偽のデータを入力しようとしています。

Factory.define :user do |user|
  user.first_name Faker::Name::first_name
  user.last_name Faker::Name::last_name
  user.sequence(:email) {|n| "user#{n}@blow.com" }
end

しかし、私はこれが異なるfirst_nameとlast_nameを持つユーザを生成することを期待していますが、それぞれは同じです。

>> Factory(:user)
=> #<User id: 16, email: "[email protected]", created_at: "2011-03-18 18:29:33",     
updated_at: "2011-03-18 18:29:33", first_name: "Bailey", last_name: "Durgan">
>> Factory(:user)
=> #<User id: 17, email: "[email protected]", created_at: "2011-03-18 18:29:39", 
updated_at: "2011-03-18 18:29:39", first_name: "Bailey", last_name: "Durgan">

Faker gemに、各ユーザーに新しい名前を生成させ、元の名前を再利用させないようにするにはどうしたらよいでしょうか?

どうすれば解決しますか?

Factory.define :user do |user|
  user.first_name { Faker::Name::first_name }
  user.last_name { Faker::Name::last_name }
  user.sequence(:email) {|n| "user#{n}@blow.com" }
end

フェイカーを括弧で囲ってみる。 参照 このリンク