我有一个具有各种属性和验证的用户模型。如果创建了用户,则仅使用电子邮件地址和密码,其他用户可以在以后更改。
我想验证: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