У меня есть приложение Rails5 с таблицей «Участник» со столбцом «returning_couns».
Я использую Rspec, чтобы проверить, что значение не требуется при первоначальном создании записи.
В Participant.rb у нас есть:
validates_inclusion_of :returning_couns, :in => [true, false ], message: 'You must indicate the returning counselor status.', on: :update
Это из member_spec.rb:
describe 'returning counselor tests' do
before :each do
@adult_attr = {
:gender => 'Male', :first_name => 'John', :last_name => 'Smith',
.... # other attrs for valid Participant, without returning_couns
}
end
it 'does not require returning_couns on create' do
expect(Participant.create(@adult_attr)).to be_valid
end
end
Эта спецификация не работает с сообщением
ожидается # Идентификатор участника: 1, имя_первого имени: "Джон", ... returning_couns: nil, ...пол: "Мужской"> для того, чтобы быть действительным, но получил ошибки: Счетчик возвратов Вы должны указать статус консультанта по возвращению.
Вот окончательный вывод из файла журнала rspec.
(0.2ms) BEGIN
(0.3ms) SAVEPOINT active_record_1
Participant Create (1.0ms) INSERT INTO "participants" ("first_name", "last_name", "address1", "city", "state", "zip", "email", "mobile_phone", "home_phone", "shirt_size", "grade", "grade_date", "special_needs", "created_at", "updated_at", "youth", "full_legal_name", "bg_check_option", "gender") VALUES ($1, $2, $3, $4, $5, $6, $7, $8, $9, $10, $11, $12, $13, $14, $15, $16, $17, $18, $19) RETURNING "id" [["first_name", "John"], ["last_name", "Smith"], ["address1", "100 First Street"], ["city", "Our Town"], ["state", "CA"], ["zip", "90001"], ["email", "john.smith@gmail.com"], ["mobile_phone", "916-123-1234"], ["home_phone", "916-111-2222"], ["shirt_size", "XL"], ["grade", "23 or older"], ["grade_date", "1996-06-25"], ["special_needs", "Allergic to shellfish and tree nuts"], ["created_at", "2019-06-25 21:14:47.974226"], ["updated_at", "2019-06-25 21:14:47.974226"], ["youth", false], ["full_legal_name", "John H. Smith"], ["bg_check_option", 1], ["gender", "Male"]]
(0.3ms) RELEASE SAVEPOINT active_record_1
(1.0ms) ROLLBACK
При создании поле returning_couns является обязательным, хотя условная проверка указывает on: :update
.Есть идеи, что мне здесь не хватает?