如何为factory_girl中的同一父记录生成多个关联记录?

发布于 2024-12-04 20:54:04 字数 794 浏览 1 评论 0原文

这是模型 user 和 user_level 的定义。一个用户有多个用户级别,一个用户级别属于一个用户。

Factory.define :user do |user|

  user.name                  "Test User"
  user.email                 "[email protected]"
  user.password              "password1"
  user.password_confirmation "password1"
  user.status                "active"
  user.user_type             "employee"

end

Factory.define :user_level do |level|

  level.role                 "sales"
  level.position             "member"
  level.team                 1
  level.association          :user
end

@user_level = Factory(:user_level) 在users表中生成一条user_level记录及其父记录。如果我需要为一条父用户记录生成 2 条用户级别记录,该怎么办?

有什么想法吗?谢谢。

Here is the definition for model user and user_level. A user has many user levels and a user level belongs to a user.

Factory.define :user do |user|

  user.name                  "Test User"
  user.email                 "[email protected]"
  user.password              "password1"
  user.password_confirmation "password1"
  user.status                "active"
  user.user_type             "employee"

end

Factory.define :user_level do |level|

  level.role                 "sales"
  level.position             "member"
  level.team                 1
  level.association          :user
end

@user_level = Factory(:user_level) generates one user_level record and its parent record in users table. What do I do if I need generate 2 user level records for one parent user record?

Any thoughts? thanks.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

等待圉鍢 2024-12-11 20:54:04

您可以首先指定用户,然后将相同的用户传递给每个工厂创建调用:

@user = Factory(:user)
@user_level = Factory(:user_level, :user => @user)
@user_level2 = Factory(:user_level, :user => @user)

要进行快速健全性检查,请执行断言equal确认它是同一个对象

@user_level.user.should equal @user_level2.user

You can specify the user first, and then pass the same user to each factory create call:

@user = Factory(:user)
@user_level = Factory(:user_level, :user => @user)
@user_level2 = Factory(:user_level, :user => @user)

To do a quick sanity check, do an assert equal (confirms it's the same object)

@user_level.user.should equal @user_level2.user
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文