Validações ActiveRecord avançadas
O curso trata das opções de validação do ActiveRecord que vão além de uma checagem de presença, usando os models reais deste projeto e uma tabela de rascunho. Ele começa pelas quatro formas da opção length e passa para a unicidade com escopo e sem diferenciar maiúsculas. Depois vêm format com padrões compartilhados, numericality, inclusion, exclusion e confirmation. As aulas seguintes mostram regras condicionais com if:, unless: e contextos on:. Também tratam de métodos validate próprios com errors.add e de formas de ler o objeto errors. A última aula junta tudo num model Article.
O que você vai aprender
- ✓As chaves minimum, maximum, in e is da opção length
- ✓Unicidade com scope:, case_sensitive: false e message: próprio
- ✓format com padrões compartilhados, e limites de numericality, incluindo only_integer
- ✓As checagens inclusion, exclusion e confirmation
- ✓Validações condicionais com if:, unless: e contextos on:
- ✓Métodos validate próprios e leitura de errors com of_kind?, added?, details e each
length: quatro formas para uma opção
Em ActiveRecord: introdução ao model, a aula "Validações: uma regra antes de salvar" apresentou validates como uma regra que o Rails confere antes de salvar um registro. Ela terminava dizendo que as opções, as formas de uma checagem falhar e o jeito de mostrar falhas ao usuário ganhariam um curso…
Ler a aula completa grátis →Currículo
7 aulaslength: quatro formas para uma opção
As quatro chaves da opção length, minimum, maximum, in e is, cada uma com sua mensagem de erro.
uniqueness: com escopo, e sem diferenciar maiúsculas de propósito
Unicidade dentro de um grupo com scope:, sem diferenciar maiúsculas com case_sensitive: false, e mensagem própria com message:.
format além de um slug, e numericality para números
Padrões de format reaproveitados para email e URL, e checagem de números com chaves de numericality como only_integer.
inclusion, exclusion, e confirmation
Valores restritos por listas de inclusion e exclusion, e dois campos que precisam bater com confirmation: true.
if:, unless:, e contextos on:
Validações condicionais com if: e unless:, e checagens limitadas aos contextos de criação, atualização ou próprios.
Uma regra customizada, e lendo errors a fundo
Métodos validate próprios que chamam errors.add, e leitura das falhas com of_kind?, added?, details e each.
Juntando tudo: um article totalmente validado
Um model Article que combina todas as opções do curso, mais allow_nil e allow_blank para valores vazios.