В моей фабрике у меня есть логическое поле (оценивается), которое я пытаюсь установить на false. Я хочу, чтобы поле было необходимо, и всегда устанавливается либо истинный или ложнойFactoryGirl: присвоение значения 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
Если изменить значение истинно, то тест проходит
evaluated true
Как я могу создать завод с ложными значениями Booleans?
Это больше, что вы не можете проверить наличие булевы. 'False.present? => false' –
Итак, лучший вариант - добавить его как нуль на уровне db? – ardochhigh
Да, вот что я сделал бы –