FactoryGirl + Faker - 为数据库种子数据中的每个对象生成相同的数据

2024-03-06

我正在使用 FactoryGirl 和 Faker 在我的seeds.rb文件,但由于某种原因正在创建完全相同的用户并且rake db:seed由于电子邮件唯一性验证而失败。

用户工厂:

#users.rb
require 'faker'

FactoryGirl.define do
  factory :user do
    first_name            Faker::Name.first_name
    last_name             Faker::Name.last_name
    phone                 Faker::PhoneNumber.cell_phone
    email                 Faker::Internet.email
    password              "password"
    password_confirmation "password"
  end
end

和代码seeds.rb file:

#seeds.rb
rand(5..11).times { FactoryGirl.create(:user) }

Error:

ActiveRecord::RecordInvalid: Validation failed: Email has already been taken

如果我打开控制台并使用FactoryGirl.create(:user)我得到相同的结果...即使我只运行,也会一遍又一遍地创建相同的对象Faker::Internet.email好几次我都会收到几封电子邮件。

工厂女工:

[1] pry(main)> FactoryGirl.create(:user)
...
=> #<User id: 3, first_name: "Osvaldo", last_name: "Wunsch", email: "[email protected] /cdn-cgi/l/email-protection", phone: "(912)530-4949 x64848", created_at: "2014-07-31 20:57:27", updated_at: "2014-07-31 20:57:27", encrypted_password: "$2a$10$mxWC7yLYR0m/Sw8MO6Lyru.xuTHCdCEuM9Orx3LXGApF...", reset_password_token: nil, reset_password_sent_at: nil, remember_created_at: nil, sign_in_count: 0, current_sign_in_at: nil, last_sign_in_at: nil, current_sign_in_ip: nil, last_sign_in_ip: nil>
[2] pry(main)> FactoryGirl.create(:user)
...
ActiveRecord::RecordInvalid: Validation failed: Email has already been taken

Faker 本身:

[3] pry(main)> Faker::Internet.email
=> "[email protected] /cdn-cgi/l/email-protection"
[4] pry(main)> Faker::Internet.email
=> "[email protected] /cdn-cgi/l/email-protection"

我在这里缺少什么?为什么 Faker 每次通过 FactoryGirl 使用时都会产生相同的数据?


如果您希望为创建的每个实例重新评估值,则需要传递一个块。

代替

email   Faker::Internet.email

try...

email   { Faker::Internet.email }
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

FactoryGirl + Faker - 为数据库种子数据中的每个对象生成相同的数据 的相关文章

  • 如何使用Java获取特定模式的所有表及其列?

    我有一个数据库架构 其名称为 Navid 这个模式中有很多表 当然每个表都有一些列 我需要的是一个java类 连接到我的数据库 有一个在所有表上循环的方法 2 1 有一个内部循环来定义表的所有列 制作创建表查询语句 我想在另一个数据库中创建
  • Rails 3.1、Ruby 1.9.2-p180 和 UTF-8 问题

    我在使用 UTF 8 字符时遇到一些问题 这是 db seeds rb User create username eml first name last name ck email email protected cdn cgi l ema
  • 巩固 Django 南迁移

    在我的项目的初始阶段 我对模型进行了很多更改 因此我最终为我的应用程序生成了很多向南迁移 在转到我的生产服务器执行迁移之前 是否可以以任何方式整合它们 这样我就不会为每个应用程序进行一百万次迁移 如果是这样 我该怎么做呢 您始终可以删除现有
  • 在 Rails 中本地化嵌套虚拟属性

    怎么可能本地化嵌套虚拟属性在 Rails 中 该模型 class User lt ActiveRecord Base attr accessor company information This is used in callbacks e
  • 使用 Flyway 和 Hibernate 的 hbm2ddl 在应用程序的生命周期中管理数据库模式

    我正在开发 Spring Hibernate MySql 应用程序 该应用程序尚未投入生产 我目前使用 Hibernatehbm2ddl该功能对于管理域上的更改非常方便 我也打算用Flyway用于数据库迁移 在未来的某个时候 该应用程序将首
  • Ruby on Rails 两个同时创建两个不同控制器的操作

    我有一个线程控制器和消息控制器 线程 has many 消息 用户单击发送后 我将数据发送到线程控制器以创建线程 我想做到这一点 线程控制器 rb def create if thread save send data into messa
  • 如何在 mongoid 中使用 or 条件进行查询

    如何在 Mongoid 中使用 or 条件进行查询 这是 OR 在 mongoid 中查询 如果你想要像下面这样的查询 select from user where id 10 or name hitesh 在带有 mongoid 的 Ra
  • 从 Ruby on Rails 应用程序运行 phantomjs

    我有兴趣使用幻影 http www phantomjs org 我想从我的 Ruby on Rails 应用程序运行它 然而 这是一个命令行工具 即我需要运行类似phantomjs rasterize js http raphaeljs c
  • pg_restore错误:角色XXX不存在

    尝试将数据库从一个系统复制到另一个系统 涉及的版本是9 5 0 源 和9 5 2 目标 源数据库名称是foodb与主人pgdba并且目标数据库名称将被命名foodb dev与主人pgdev 所有命令都在将托管副本的目标系统上运行 The p
  • 研究MySQL、SQLite源码了解RDBMS实现[关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我知道实现数据库是一个很大的话题 但我想通过研究数据库系统的源代码来基本了解数据库系统的工作原理 例如
  • Android中BaseColumns有什么用

    实现一个类有什么用BaseColumns在安卓中 The BaseColumns http developer android com reference android provider BaseColumns html接口提供了非常常见
  • MySQL 中的创建/写入权限

    我的设备遇到一些权限问题SELECT INTO OUTFILE陈述 当我登录数据库并执行简单的导出命令时 例如 mysql gt select from XYZ into outfile home mropa Photos Desktop
  • Rails 中的 Google freebusy api 调用无法识别参数

    我试图从我的主日历中查找所有空闲 忙碌时间 但我无法让查询识别我的参数 在我的控制器中我有 freetimes client execute api method gt service freebusy query parameters g
  • 触发器与非规范化存储过程的优缺点

    当涉及到对事务数据库中的数据进行非规范化以提高性能时 至少 有三种不同的方法 通过存储过程推送更新 更新规范化交易数据和非规范化报告 分析数据 在事务表上实现更新辅助表的触发器 这几乎总是维护历史时所采取的路线 将处理推迟到夜间批处理 可能
  • 游标索引越界异常

    打开后出现光标索引越界错误 数据库 请任何人告诉我如何打开现有数据库 sqllite Android 我想在数据库上触发一个选择查询 检索一些信息 public void getPatient SQLiteDatabase db Strin
  • 我的用例可以合并到单个查询中而不影响性能吗?

    我主要着眼于改善表现查询的内容以及是否能够解决单一查询对于我的用例之一 解释如下 涉及到2张表 Table 1 EMPLOYEE column1 column2 email1 email2 column5 column6 Table 2 E
  • Rails 4 单选按钮表单助手,true 不验证

    我在 needs dist 上附加了简单的是或否单选按钮 当我提交表单时选择 否 它工作得很好 但是当我选择 是 时 它会抛出验证错误吗 它仅在 needs dist gt true 时有效 Model validates presence
  • 客户端应用程序立即对数据库中的更新做出反应的最佳方式是什么?

    对数据库中的数据更新做出立即反应的最佳方法是什么 我能立即想到的最简单的方法是一个线程 它检查数据库中某些数据的特定更改 并持续等待在某个预定义的时间长度内再次检查它 这个解决方案对我来说似乎是浪费和次优的 所以我想知道是否有更好的方法 我
  • 如果你使用belongs_to而没有相应的has_one,会发生什么?

    我有一个核心模型Item 以及一个从自定义源 例如 RSS feed 填充它的脚本 在 feed 中 每个项目都用一个标识guid 在我的系统中 项目只有一个自动生成的id首要的关键 我想要 比方说 ItemFeedInfo那个地图guid
  • 以 Rails 形式处理 MongoMapper EmbeddedDocument

    首先 我对一般编程和 Rails 都是新手 我选择 Rails 是因为它看起来是一种很容易上手的语言 对于我的项目 我将 MongoMapper 与 Rails 结合使用 我正在尝试以与文档相同的形式处理嵌入文档 我有以下模型 class

随机推荐

  • LISP - 小数点后的数字

    有谁知道如何在 Lisp 中指定浮点数小数点后的位数 假设我在 REPL 上打印此命令 CL USER 3 gt format t 15f float 1 7 I get 0 142857150000000 但是该数字四舍五入到小数点后第
  • 使用 7zip 检测文件是否为存档

    我想使用 SevenZipSharp 来确定文件是否是存档 我知道这是可能的 因为在资源管理器中 如果我将 zip 重命名为 bmp 7zip 仍然会将其识别为存档 edit 换句话说 我希望 7zip 告诉我文件 无论扩展名如何 是否包含
  • ASP.NET 网站的自定义登录机制

    我正在开发一个 ASP NET 网站 我需要摆脱一些自定义但简单的登录机制 我从著名的员工信息入门套件 http eisk codeplex com 这是我到目前为止所拥有的 在 ASP NET 页面上 protected void But
  • Facebook Graph Api 2.1 从用户名获取用户 ID

    我正在寻找一个可以从个人资料网址或 Facebook 用户名中提供用户 ID 的解决方案 example http facebook com username 获取此 url 的用户 ID 而且当我尝试读取朋友 我有朋友相关权限 时 我得到
  • Parse.com 关系查询问题

    我有以下表格名称 aniStudii 和 discipline 我也制作了屏幕截图 正如您所看到的 这些表之间在 mateii 列中存在关系 aniStudii 中 Anul I 列的行具有一个值 另一列具有不同的值 这些值可以在 disc
  • JavaScript 乘以 100 给出奇怪的结果[重复]

    这个问题在这里已经有答案了 I have var a 0 0532 var b a 100 b 应该返回 5 32 但它返回 5 319999999999999 我该如何解决 JSFiddle 在这里 http jsfiddle net 9
  • fseek() 函数中的零偏移量与 SEEK_CUR 有什么用?

    while fread product sizeof Product 1 file 1 product price 2 0 fseek file sizeof Product SEEK CUR fwrite product sizeof P
  • 从 package.json 脚本中调用带有参数的 javascript 函数

    javascript 文件 foo js 具有以下内容 function foo param console log foo called with params console log param module exports foo f
  • 编辑后保留PDB文件格式。

    我有 xxx pdb 文件 ATOM 1910 CB SER 128 45 806 50 621 39 840 1 00 9 36 ATOM 1913 OG SER 128 44 538 51 195 39 571 1 00 9 36 AT
  • Given import java util public class Hancock insert code here list add foo 哪两个代码片段独立插入到第 5 行 编译时不会出现警告 选择两项 A public void
  • 将 FILE * 从 Python / ctypes 传递到函数中

    我有一个库函数 用 C 编写 它通过将输出写入到来生成文本FILE 我想用 Python 2 7 x 包装它 并使用创建临时文件或管道的代码 将其传递到函数中 从文件中读取结果 并将其作为 Python 字符串返回 这是一个简化的示例来说明
  • 如何从EF扩展Entity?

    EF 创建的所有实体都是分部类 所以它是可扩展的 假设我有像 Person 这样的实体 partial class Person FirstName LastName 然后我想添加一个计算属性名称 例如 partial class Pers
  • file_get_contents() 用于短网址

    file get contents 不读取短网址数据 例子 http wp me pbZy8 1WM http bit ly d00E2C 请帮我处理这个问题 或者是否有任何 CURL 函数来处理上述链接 这通常工作得很好 如果您发现它没有
  • 密码验证后启动程序

    我需要一些帮助 我在互联网上找到了这个密码程序 它很完美 但是有一个问题 我想做的 一旦验证了密码 启动我制作的另一个程序 另一个程序我制作的是HTA 超文本应用程序 我可以做到这一点吗 这是代码 package components im
  • 每五分钟显示一次 Android 通知

    我想知道如何设置通知时间 我想设置每五分钟通知一次 所以请帮我做到这一点 public class FirstActivity extends Activity private static final int HELLO ID 1 pub
  • Google Oauth - 在哪里登录用户、后端/前端

    使用 Google OAuth 与在应用程序前端登录用户和在应用程序后端登录用户有什么区别 示例 在 React 中登录用户并获取 ID 和身份验证对象 或者让 Node Express 处理一切 过程 重定向并将其存储在数据库中 最常见的
  • 如何使用 Anaconda 的解释器设置 SublimeREPL?

    我喜欢 Sublimetext 中的 Python 但我真正需要的是用于数据探索的交互模式 然而 我一生都无法让 SublimeREPL 使用 Anaconda 的解释器 任何想法 将不胜感激 我已将以下内容添加到我的 SublimeREP
  • 如何获取测量中的条目数

    我是 influxdb 的新手 我刚刚开始阅读流入文档 我似乎无法得到相当于 从表中选择计数 在 influxdb 中工作 我有一个称为购物车的测量 time status cartid 1456116106077429261 0 A 14
  • 通过 javascript/jquery 添加带有 onclick 功能的按钮

    我正在努力寻找通过 javascript jquery 添加带有附加功能的按钮的正确语法 现在我正在尝试 list append
  • FactoryGirl + Faker - 为数据库种子数据中的每个对象生成相同的数据

    我正在使用 FactoryGirl 和 Faker 在我的seeds rb文件 但由于某种原因正在创建完全相同的用户并且rake db seed由于电子邮件唯一性验证而失败 用户工厂 users rb require faker Facto