gpt4 book ai didi

ruby-on-rails - rails 4 : Set enum field through FactoryGirl attributes

转载 作者:太空宇宙 更新时间:2023-11-03 17:45:02 24 4
gpt4 key购买 nike

我有一个以枚举作为属性的模型。

class ApplicationLetter < ActiveRecord::Base
belongs_to :user
belongs_to :event

validates :user, :event, presence: true

enum status: {accepted: 1, rejected: 0, pending: 2}

end

以及生成此模型并为枚举设置值的工厂

FactoryGirl.define do
factory :application_letter do
motivation "motivation"
user
event
status :accepted
end
end

在 Controller 测试中我想通过工厂获得有效的属性

let(:valid_attributes) { FactoryGirl.build(:application_letter).attributes }

并创建具有这些属性的应用程序。

application = ApplicationLetter.create! valid_attributes

但是我得到以下错误:

ArgumentError: '1' is not a valid status

为什么状态被解释为字符串?如果我在工厂中更改状态,我会得到同样的错误,但对应的数字是正确的。

最佳答案

你可以更动态地做到这一点:

FactoryGirl.define do
factory :application_letter do
motivation "motivation"
user
event
status { ApplicationLetter.statuses.values.sample }
end
end

在这里面每次你都会得到不同的状态

或者,如果想使用静态值,则必须使用整数,因为 enum 默认使用整数值

关于ruby-on-rails - rails 4 : Set enum field through FactoryGirl attributes,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40830247/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com