Posts Tagged ‘error 500’

Ruby on Rails validates_numericality_of para integer ou valores determinados

Postado em 06 nov 2009
Categoria(s) Ruby on Rails

Se a sua aplicação Ruby on Rails trabalha com chaves estrangeiras, relacionamentos, é interessante adicionar algumas validações para que o seu sistema não dê erro 500 por uma tentativa mal intecionada de inserção ou atualização do registro.

Isso também é útil quando você quer delimitar uma faixa de valores válidos para o campo.

Geralmente os campos de chave estrangeira são do tipo integer que pertence ao intervalo de -2147483648 até +2147483647, onde a grande maioria das aplicações trabalha somente com o conjunto dos números N* (naturais sem o zero).

Eu recomendo a seguinte validação no seu model:

class Investor < ActiveRecord::Base
  # Para chaves estrangeiras
  validates_numericality_of [:country_id, :gender_id, :civil_position_id], :greater_than_or_equal_to => 1, :less_than_or_equal_to => 2147483647
  # Para faixa de valor definida
  validates_numericality_of :number_of_dependents, :allow_nil => true, :greater_than_or_equal_to => 0, :less_than_or_equal_to => 9999
end

Desta forma para chaves estrangeiras são apenas aceitos valores de 1 até 2147483647.

Já para a faixa de valor definida você mesmo deve definir, conforme a sua necessidade, no caso do exemplo acima de 0 até 9999.

Se você gostou desse texto e acha que ajudou você, me recomende: Recommend Me.

  • Share/Bookmark