ฉันพยายามเติมข้อมูลปลอมในโรงงานโดยใช้ 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_names ต่างกัน แต่แต่ละคนก็เหมือนกัน:
>> Factory(:user)
=> #<User id: 16, email: "user7@blow.com", 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: "user8@blow.com", created_at: "2011-03-18 18:29:39",
updated_at: "2011-03-18 18:29:39", first_name: "Bailey", last_name: "Durgan">
ฉันจะทำให้ Faker gem สร้างชื่อใหม่สำหรับผู้ใช้แต่ละคนได้อย่างไรและไม่เพียง แต่นำชื่อเดิมมาใช้
user.sequence(:first_name} {|n| Faker::Name::first_name}
บ้างไหม? FactoryGirl มีแนวโน้มที่จะประเมินการโทร Faker ของคุณเมื่อโหลด "การแข่งขัน" ของคุณ การใช้sequence param,&block
วิธีควรป้องกันนั้น