rails not nil method empty blank ruby-on-rails ruby ruby-on-rails-2

not - ¿Cómo puedo verificar si un objeto es nulo en Ruby on Rails 2?



ruby empty method (4)

Ahora con Ruby 2.3 puedes usar &. operador (''operador solitario'') para comprobar si es nil al mismo tiempo que accede a un valor.

@person&.spouse&.name

https://en.wikibooks.org/wiki/Ruby_Programming/Syntax/Operators#Other_operators

Use #try en #try lugar para no tener que seguir buscando nil .

http://api.rubyonrails.org/classes/Object.html#method-i-try

@person.try(:spouse).try(:name)

en lugar de

@person.spouse.name if @person && @person.spouse

Quiero verificar cuando mi objeto @objectname no es igual a null para mostrar los valores de @objectname else para mostrar que no se encontraron valores.

Intenté esto:

<% if (@objectname != null) then %>

pero estoy recibiendo un error.


En su ejemplo, simplemente puede reemplazar null con `nil y funcionará bien.

require ''erb'' template = <<EOS <% if (@objectname != nil) then %> @objectname is not nil <% else %> @objectname is nil <% end %> EOS @objectname = nil ERB.new(template, nil, ''>'').result # => " @objectname is nil/n" @objectname = ''some name'' ERB.new(template, nil, ''>'').result # => " @objectname is not nil/n"

Al contrario de lo que dijo el otro cartel, puedes ver arriba que funciona bien en Ruby. No es común, pero está bien.

#blank? y #present? tener otras implicaciones Específicamente, si el objeto responde a #empty? , verificarán si está vacío. Si va a http://api.rubyonrails.org/ y busca "¿en blanco?", Verá en qué objetos está definido y cómo funciona. Al mirar la definición en Object , vemos "Un objeto está en blanco si es falso, vacío o una cadena de espacio en blanco. Por ejemplo," "," ", nil, [] y {} están en blanco." Debes asegurarte de que esto es lo que quieres.

Además, nada se considera falso, y cualquier cosa que no sea falsa y nula se considera verdadera. Esto significa que puede colocar directamente el objeto en la instrucción if, por lo que una forma más canónica de escribir lo anterior sería

require ''erb'' template = <<EOS <% if @objectname %> @objectname is not nil <% else %> @objectname is nil <% end %> EOS @objectname = nil ERB.new(template, nil, ''>'').result # => " @objectname is nil/n" @objectname = ''some name'' ERB.new(template, nil, ''>'').result # => " @objectname is not nil/n"

Si explícitamente necesitas marcar nil y no false , puedes usar #nil? método, para el cual nil es el único objeto que hará que esto vuelva verdadero.

nil.nil? # => true false.nil? # => false Object.new.nil? # => false


Puede verificar si un objeto es nulo (nulo) llamando al presente? o en blanco? .

@object.present?

esto devolverá falso si el proyecto es una cadena vacía o nula.

o puedes usar

@object.blank?

esto es lo mismo que presente? con un golpe y puedes usarlo si no te gusta ''menos''. esto volverá verdadero para una cadena vacía o nula.