Solución:
es nil
en Ruby, no null
. Y es suficiente decir if @objectname
para probar si no es nulo. Y no then
. Puedes encontrar más en if
sintaxis aquí:
http://en.wikibooks.org/wiki/Ruby_Programming/Syntax/Control_Structures#if
Puede verificar si un objeto es nulo (nulo) llamando a present? o en blanco? .
@object.present?
esto devolverá falso si el proyecto es una cadena vacía o nulo.
o puedes usar
@object.blank?
esto es lo mismo que el presente? con una explosión y puede usarlo si no le gusta ‘a menos que’. esto devolverá verdadero para una cadena vacía o nulo.
Ahora con Ruby 2.3 puedes usar &.
operador (‘operador solitario’) para comprobar nil
al mismo tiempo que accede a un valor.
@person&.spouse&.name
https://en.wikibooks.org/wiki/Ruby_Programming/Syntax/Operators#Other_operators
Usar #try
en su lugar, para que no tenga 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