Rails:即使format_nil:true,使用格式进行模型验证也必须使用属性

时间:2019-07-02 10:23:20

标签: ruby-on-rails rspec rspec-rails

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

0 个答案:

没有答案