# \[RUBY-ON-RAILS\] \[ATUALIZAÇÃO\] - Problema com email\_format

**URL:** <https://forum.casadocodigo.com.br/t/ruby-on-rails-atualizacao-problema-com-email-format/193>\
**Category:** Livros\
**Tags:** ruby, ruby-on-rails\
**Created:** [Maio 15, 2016, 3:11am UTC](https://forum.casadocodigo.com.br/t/ruby-on-rails-atualizacao-problema-com-email-format/193 "2016-05-15T03:11:56Z")\
**Posts on this page:** 2\
**Page:** 1

<div class="post-metadata">

**Author:** ![tarcio](https://avatars.discourse-cdn.com/v4/letter/t/e19adc/32.png) [@tarcio](https://forum.casadocodigo.com.br/u/tarcio)\
**Post date:** [Maio 15, 2016, 3:11am UTC](https://forum.casadocodigo.com.br/t/ruby-on-rails-atualizacao-problema-com-email-format/193/1 "2016-05-15T03:11:56Z")

</div>

Boa noite pessoal, estou lendo o livro “Ruby on Rails - Coloque sua aplicação web nos trilhos”, e estou tendo um problema com o código do método que valida o formato do email:

private  
def email\_format  
errors.add(:email, :invalid) unless email.match(EMAIL\_REGEXP)  
end

No terminal, fico tendo este erro:

NoMethodError: undefined method `match' for nil:NilClass Did you mean? catch from /home/tvn/workspace/colchonet/app/models/user.rb:13:in`email\_format’

Alguém passou por isso e resolveu? Vi algumas discussões em outros fóruns, como o stackoverflow, mas era relativo a outros métodos, principalmente recebendo classes como parametros. No caso deste não, ele apenas usa a var EMAIL\_REGEXP, que foi definida no topo do arquivo como:

EMAIL\_REGEXP = /\A[^@]+@([^@.]+.)+[^@.]+\z/

Alguma sugestão?

Obrigado!

---

<div class="post-metadata">

**Author:** ![tarcio](https://avatars.discourse-cdn.com/v4/letter/t/e19adc/32.png) [@tarcio](https://forum.casadocodigo.com.br/u/tarcio)\
**Post date:** [Maio 15, 2016, 3:22am UTC](https://forum.casadocodigo.com.br/t/ruby-on-rails-atualizacao-problema-com-email-format/193/2 "2016-05-15T03:22:53Z")

</div>

O erro começou a acontecer a partir do momento em que eu adicionei uma validação para unicidade de e-mail:

validates\_uniqueness\_of :email

Antes dessa adição, tudo funcionava. Agora só funciona se eu adicioar o “:” no atributo email na chamada do método match, tornando-o um simbol:

private  
def email\_format  
errors.add(:email, :invalid) unless :email.match(EMAIL\_REGEXP)  
end

Nãi vi lógica nesta solução, se alguém puder explicar, sou grato, obrigado!
