Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby Factory girl生成两个变量,但RecordNotUnique_Ruby_Factory Bot - Fatal编程技术网

Ruby Factory girl生成两个变量,但RecordNotUnique

Ruby Factory girl生成两个变量,但RecordNotUnique,ruby,factory-bot,Ruby,Factory Bot,我有一个Usermodel类,我想生成两个实例变量来进行一些测试 let (:user) {FactoryGirl.create :user,:with_events} let (:user1) {FactoryGirl.create :user,:with_events} 但我得到了一个错误: ActiveRecord::RecordNotUnique: Mysql2::Error: Duplicate entry 'AlBw1S27GE6wQIgzHM2TmZxSaHXLbh

我有一个
User
model类,我想生成两个实例变量来进行一些测试

let (:user) {FactoryGirl.create :user,:with_events}
let (:user1) {FactoryGirl.create :user,:with_events}
但我得到了一个错误:

ActiveRecord::RecordNotUnique:
       Mysql2::Error: Duplicate entry 'AlBw1S27GE6wQIgzHM2TmZxSaHXLbhuQIg08NyI98Cg' for key 'index_users_on_access_token': INSERT INTO `users` 



I checked AlBw1S27GE6wQIgzHM2TmZxSaHXLbhuQIg08NyI98Cg is user1's access_token already. But why did user1 use the same **access_token**?
而且似乎SecureRandom.urlsafe\u base64(32)只被调用过一次?为什么访问令牌不是唯一的

附言:

工厂.rb

FactoryGirl.define do |f|

  factory :user do
    password      "123123"
    sequence(:name){|n| "张三#{n}" }
    access_token  SecureRandom.urlsafe_base64(32)
    expired       Time.now + FSpace::USER_TOKEN_EXPIRED_TIMES
  end

  factory :event do 
    end_date      "2015-05-30"
    is_countdown  "1"
    start_date    "2015-03-17"
    sequence(:name){|n| "我的生日#{n}" }
  end


  trait :with_events do
    after :create do |user|
      FactoryGirl.create_list :event, 3, :user => user
    end
  end
end

使用您使用的语法

access_token SecureRandom.urlsafe_base64(32)
定义工厂时,该值仅计算一次

如果希望每次使用工厂时都计算该值,则需要使用基于块的语法

access_token { SecureRandom.urlsafe_base64(32) }

在文档中,他们使用您使用的语法将其称为

access_token SecureRandom.urlsafe_base64(32)
定义工厂时,该值仅计算一次

如果希望每次使用工厂时都计算该值,则需要使用基于块的语法

access_token { SecureRandom.urlsafe_base64(32) }

在文档中,他们使用您使用的语法将其称为

access_token SecureRandom.urlsafe_base64(32)
定义工厂时,该值仅计算一次

如果希望每次使用工厂时都计算该值,则需要使用基于块的语法

access_token { SecureRandom.urlsafe_base64(32) }

在文档中,他们使用您使用的语法将其称为

access_token SecureRandom.urlsafe_base64(32)
定义工厂时,该值仅计算一次

如果希望每次使用工厂时都计算该值,则需要使用基于块的语法

access_token { SecureRandom.urlsafe_base64(32) }

在他们称之为

的文档中,您好,Frederick Cheung,在我用3个事件创建了user和user1之后,为什么我的测试出错了,谢谢<代码>失败/错误:expect(json[“events”].count)。对于等式6Hi Frederick Cheung,在我用3个事件创建了user和user1之后,为什么我测试出错,谢谢<代码>失败/错误:expect(json[“events”].count)。对于等式6Hi Frederick Cheung,在我用3个事件创建了user和user1之后,为什么我测试出错,谢谢<代码>失败/错误:expect(json[“events”].count)。对于等式6Hi Frederick Cheung,在我用3个事件创建了user和user1之后,为什么我测试出错,谢谢<代码>失败/错误:预期(json[“事件”].count)。到等式6