0

我正在尝试在电子邮件中添加时间戳以在用户表中生成 uniqueuenss。我有:

FactoryGirl.define do
  factory :user do
    sequence(:name)  { |n| "Person #{n}" }
    email { "jxt-{ Time.now.to_i.to_s }@jxt.com" }

但这不适用于错误:

Fri May 03$ rake db:seed --trace
(in /Users/jt/foodie-rails)
rake aborted!
Validation failed: Email is invalid

但这似乎应该起作用(在我第一次使用 Factory Girl 时授予)。我将如何解决这个问题?

谢谢

4

1 回答 1

0
 > 3.times{ puts Time.now.to_i.to_s}
 > #=>1367650408
    1367650408
    1367650408

你看,时间戳是一样的。您需要等待 1 秒才能获得唯一的时间戳。

电子邮件是重复的,因此无法创建。

实际上你不需要时间戳。您可以sequence直接在 FactoryGirl 中创建独特的电子邮件。

sequence(:email) {|n| "person#{n}@example.com" }
于 2013-05-04T06:55:33.487 回答