Tengo una cadena en Ruby en la que estoy llamando al método strip para eliminar el espacio en blanco inicial y final. p.ej.Ruby check if nil before calling method
s = "12345 "
s.strip
Sin embargo, si la cadena está vacía, aparece el siguiente error.
NoMethodError: método `strip' no definido para nada: NilClass
estoy usando Ruby 1.9 así que cuál es la forma más sencilla de comprobar si el valor es nulo antes de llamar al método de la tira?
Actualización:
He intentado esto en un elemento en una matriz, pero tengo el mismo problema:
data[2][1][6].nil? ? data[2][1][6] : data[2][1][6].split(":")[1].strip
esto se ha preguntado de una u otra manera docenas de veces: http://stackoverflow.com/questions/5429790/is-there-a-clean-way-to-avoid-calling-a-method-on- nil-in-a-nested-params-hash – tokland
nota para el cartel original: la Cadena no está vacía como usted afirma, que sería 's =" "', es nula. Todavía no existe. Si estaba vacío, puede verificar con: 's.strip a menos que esté vacío' ' – three
Si la cadena está vacía, no obtendrá ese error. – sawa