を失敗した私は私のユーザモデルで以下の検証を持っている:メールが正規表現の検証
VALID_EMAIL_REGEX = /\A[\w+\-.][email protected][a-z\d\-.]+\.[a-z]+\z/i
validates :email,
presence: true,
format: { with: VALID_EMAIL_REGEX }
それは1通の電子メールを除いて電子メールのために正常に動作します。このメールが有効である必要があります。失敗したテストは次のとおりです。
it 'should accept a domain with more than 4 letters', focus: true do
user.email = '[email protected]'
expect(user.valid?).to be(true)
end
このテストは合格です。 ?あなたはpython-email-validatorを使用していないのはなぜ
#<EmailValidator:0x000000075b04d0
@attributes=[:email],
@options={:if=>#<Proc:[email protected]/usr/local/rvm/gems/[email protected]/gems/devise_token_auth-0.1.37/app/models/devise_token_auth/concerns/user.rb:30>}>,
#<ActiveRecord::Validations::PresenceValidator:0x00000007414338 @attributes=[:email], @options={}>,
#<ActiveModel::Validations::FormatValidator:0x0000000740ef28 @attributes=[:email], @options={:with=>/\A[\w+\-.][email protected][a-z\d\-.]+\.[a-z]+\z/i}>,
#<ActiveModel::Validations::LengthValidator:0x0000000740de98 @attributes=[:email], @options={:minimum=>6, :maximum=>100}>,
#<ActiveRecord::Validations::UniquenessValidator:0x0000000740ccf0
テストを開いて、ユーザーがどのようなエラーが発生しているのか確認できますか? (電子メールのバリデーターが何が失敗しているかをダブル確認してください) –
はい、私はそれを電子メールです。私はユーザーモデルのすべての検証もチェックしました。これは正しい式です(User.validations_on(:email))。私はまた、他の5つのテストをメールで受け取ります。 –
これは、テストで大歓迎です。@messages = {:email => ["このフィールドはメールではありません"]} –