rails not nil method has_and_belongs_to_many empty blank ruby-on-rails ruby model null

ruby-on-rails - not - ruby empty method



rieles nils en una forma (2)

Yo uso var.blank ?, porque obtengo estos resultados en una consola de Rails 3 corriendo contra Ruby 1.8:

>> nil.blank? => true >> [].blank? => true >> nil.empty? NoMethodError: You have a nil object when you didn''t expect it! You might have expected an instance of Array. The error occurred while evaluating nil.empty? from (irb):4

Históricamente, no he visto .empty? trabajo para objetos nulos.

Esta es probablemente una pregunta simple, pero noté algunos errores derivados de tener valores vacíos en lugar de nils ...

Si un usuario deja un campo en blanco en una aplicación de rieles estándar, ¿hay alguna manera de dejar el campo en la base de datos establecido en NULL en lugar de ingresar un valor vacío?

Básicamente, ¿entonces un cheque como @ model.info.nil? ¿Devuelve verdadero en lugar de tener que comprobar si es nulo y está vacío?


editar Como recordó brokenbeatnik , confundí el blank? con empty? , mi error.

No es necesario que verifique valores nulos y vacíos. var.empty? devolverá true incluso para nil (ver API docs). Por lo tanto, generalmente me resulta más conveniente usar solo cheque vacío.

Pero si no quiere eso, puede convertir valores vacíos a nils con devoluciones de llamadas de registros activos . Algo así como attribute = nil if attribute.empty? cada vez que se guarda el objeto.