如何在Ruby on Rails创建记录后,如何修改Factory生成的模型属性?

2026-04-11 16:252阅读0评论SEO问题
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计224个文字,预计阅读时间需要1分钟。

如何在Ruby on Rails创建记录后,如何修改Factory生成的模型属性?

使用FactoryBot创建管理工厂时,在before_create回调中,为每个用户分配了一个默认的用户角色。这意味着在回调发生时,工厂的任何角色都将被更改为用户角色。

如何在Ruby on Rails创建记录后,如何修改Factory生成的模型属性?

使用FactoryBot,我在我的规范中创建管理工厂时遇到了问题,因为在before_create回调中为每个用户分配了一个默认的用户角色.这意味着在回调发生时,我分配工厂的任何角色都将更改为用户.

我真正想做的是这样的事情:

在我的规格内

admin = FactoryBot.create(:user) admin.role = 'admin'

第二行admin.role =’admin’没有做任何事情.有任何想法吗?

我也愿意接受更好的方法.

另一种方式

# Steal some code from MrYoshiji at first. factory :user do sequence(:username) { |n| "User ##{n}"} role 'user' # Then a separate factory inside factory :admin do role 'admin' end end # Use FactoryBot.create(:admin)

本文共计224个文字,预计阅读时间需要1分钟。

如何在Ruby on Rails创建记录后,如何修改Factory生成的模型属性?

使用FactoryBot创建管理工厂时,在before_create回调中,为每个用户分配了一个默认的用户角色。这意味着在回调发生时,工厂的任何角色都将被更改为用户角色。

如何在Ruby on Rails创建记录后,如何修改Factory生成的模型属性?

使用FactoryBot,我在我的规范中创建管理工厂时遇到了问题,因为在before_create回调中为每个用户分配了一个默认的用户角色.这意味着在回调发生时,我分配工厂的任何角色都将更改为用户.

我真正想做的是这样的事情:

在我的规格内

admin = FactoryBot.create(:user) admin.role = 'admin'

第二行admin.role =’admin’没有做任何事情.有任何想法吗?

我也愿意接受更好的方法.

另一种方式

# Steal some code from MrYoshiji at first. factory :user do sequence(:username) { |n| "User ##{n}"} role 'user' # Then a separate factory inside factory :admin do role 'admin' end end # Use FactoryBot.create(:admin)