У меня есть пользовательская модель с различными атрибутами и проверками. Если пользователь создан, используется только адрес электронной почты и пароль, а другие могут быть изменены позже.
Я хочу проверить :countries
, чтобы он содержал только буквы, запятые и пробелы, а также по длине. Я пытаюсь добиться этого с помощью регулярного выражения и проверки формата.
Но тогда я получаю сообщение об ошибке в тесте rspec, если я хочу сохранить пользователя только с паролем и адресом электронной почты, что страны недопустимы. Я думал, что это будет решено, если я добавлю allow_nil: true
, но ничего не изменится. Без формата тест проходит.
Это проверка в user.rb:
validates :countries, allow_nil: true, length: {in: 2..100}, format: {with: /\A[a-z,\s]+\z/}
Ошибка теста:
1) User saves with only email and password
Failure/Error: user = User.create!(email: valid_email, password: valid_password)
ActiveRecord::RecordInvalid:
Validation failed: Countries is invalid