Ruby on Rails - validações de entrada do usuário
Aqui está a lista de validações que você pode realizar na entrada do usuário -
validates_presence_of
O seguinte verifica se last_name e first_name devem ser preenchidos e não devem ser NULL.
validates_presence_of :firstname, :lastname
validates_length_of
O exemplo a seguir mostra várias validações em um único campo. Essas validações podem ser realizadas separadamente.
validates_length_of :password,
:minimum => 8 # more than 8 characters
:maximum => 16 # shorter than 16 characters
:in => 8..16 # between 8 and 16 characters
:too_short => 'way too short'
:too_long => 'way to long'
validates_acceptance_of
O seguinte aceitará apenas o valor 'Y' para o campo de opção.
validates_acceptance_of :option
:accept => 'Y'
validates_confirmation_of
Os campos senha e senha_confirmação devem corresponder e serão usados da seguinte forma -
validates_confirmation_of :password
validates_uniqueness_of
O seguinte coloca uma condição para user_name ser único.
validates_uniqueness_of :user_name
validates_format_of
O seguinte valida que um determinado ID de email está em um formato válido. Isso mostra como você pode usar uma expressão regular para validar um campo.
validates_format_of :email
:with => /^(+)@((?:[-a-z0-9]+\.)+[a-z]{2,})$/i
validates_numericality_of
Isso valida que determinado campo é numérico.
validates_numericality_of :value
:only_integer => true
:allow_nil => true
validates_inclusion_of
O seguinte verifica se o valor passado é uma enumeração e se enquadra no intervalo fornecido.
validates_inclusion_of :gender,
:in => %w( m, f )
validates_exclusion_of
O seguinte verifica se os valores fornecidos não estão no intervalo fornecido.
validates_exclusion_of :age
:in => 13..19
validates_inclusion_of
O seguinte verifica se os valores fornecidos devem estar dentro do intervalo fornecido. Este é o oposto de validates_exclusion_of.
validates_inclusion_of :age
:in => 13..19
validates_associated
Isso valida se o objeto associado é válido.
Opções para todas as validações
Você pode usar as seguintes opções junto com todas as validações.
:message => 'my own errormessage' Use para imprimir uma mensagem de erro personalizada em caso de falha na validação.
:on => :create or :updateIsso será usado nos casos em que você deseja executar a validação apenas quando o registro está sendo criado ou atualizado. Então, se você usar:create então, essa validação funcionará apenas quando houver uma operação de criação no banco de dados.
Verifique o link Validações para obter mais detalhes sobre Validações.