gpt4 book ai didi

ruby-on-rails - 工厂女孩 : Assigning a value of false to a boolean

转载 作者:行者123 更新时间:2023-12-04 10:24:06 26 4
gpt4 key购买 nike

在我的工厂中,我有一个 bool 字段(已评估),我试图将其设置为 false。我希望该字段是必需的,并且始终设置为

模型

  validates_presence_of :evaluated

工厂
FactoryGirl.define do
factory :submission do
evaluated true
score 1.5
ranking 1.5
submission_type "user"
.
.
end
end

在测试中
    it { should validate_presence_of(:evaluated) }

当我运行它
     Failure/Error: expect(@submission).to be_valid
expected #<Submission id: nil, competition_id: 163, user_id: 134, team_id: nil, evaluated: false, score: 1.5, ranking: 1.5, submission_type_cd: "user", withdrawn: true, withdrawn_date: "2016-02-08", created_at: nil, updated_at: nil> to be valid, but got errors: Evaluated can't be blank

如果我将值更改为 true,则测试通过
    evaluated true

如何为 bool 值设置带有假值的工厂?

最佳答案

我宁愿使用 inclusion_of验证而不是 presence验证。

从 rails doc ,

如果要验证 bool 字段的存在(其中实际值为 true 和 false),则需要使用
validates_inclusion_of :field_name, in: [true, false]
这是由于方式Object#blank?处理 bool 值

false.blank? # => true
那么你的测试将是这样的,
it { should ensure_inclusion_of(:field_name).in_array([true, false]) }

关于ruby-on-rails - 工厂女孩 : Assigning a value of false to a boolean,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35863544/

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