validar rails formularios formulario ruby-on-rails-3 validation chars

ruby-on-rails-3 - validar - formularios en ruby on rails



Cómo validar texto no está en blanco en Rails (3)

si lo hago

validates :body, :presence => true, :length => {:maximum => 30000, :message => '' is a bit long...''} validates :body, :length => {:minimum => 10, :message => '' is a bit short...''}

Todavía tengo la posibilidad de tener un texto que incluya solo spaces y /r o /n - caracteres no visibles, que aunque el texto no está en blanco por definición, está en blanco al mirarlo

¿Cómo puedo validar que el texto tenía una longitud mínima y máxima como se muestra arriba y también es visible (no 10 espacios)?


¿Qué pasa si intentas agregar algo como esto?

validates_format_of :body, :with => //A[[:graph:]]/Z/i

Notas:

  • validates_format_of permite validar con expresiones regulares
  • [[:graph:]] te permite revisar una cadena para caracteres imprimibles ( ver "Clases de caracteres" )

Rails agrega el método práctico en blank? que comprueba las cadenas falsas, nulas y vacías como se describe here .
Rails también agrega el útil validador allow_blank: false .

Así que en tu caso debería ser:

validates :body, presence: true, allow_blank: false

Editar (respuesta original arriba):

Como se indica en la respuesta a continuación, allow_blank: false no es necesario ya que ese es el comportamiento predeterminado de presence: true .


presence: true ya hace eso de acuerdo con http://guides.rubyonrails.org/active_record_validations.html#presence

Este ayudante valida que los atributos especificados no estén vacíos. Utiliza el espacio en blanco? método para verificar si el valor es nulo o una cadena en blanco, es decir, una cadena que está vacía o consiste en espacios en blanco.