Tengo el siguiente código de rubí muy feo en una aplicación de rieles que estoy trabajando:Ruby: Nils en una instrucción IF
if params.present?
if params[:search].present?
if params[:search][:tags_name_in].present?
...
end
end
end
Todo lo que estoy tratando de hacer es si params [:] [búsqueda : tags_name_in] se ha definido, sino porque params, y params [:] de búsqueda, y params [:] [búsqueda: tags_name_in] podría ser nulo todo, si uso ...
if params[:search][:tags_name_in].present?
... I obtener un error si no hay params o no hay parámetros de búsqueda.
Seguramente debe haber una mejor manera de hacer esto ... sugerencias?
Una nota sobre qué respuesta Tomé: En mi aplicación de su no importa si esta condición devuelve 'nil' o' false', ni es importante que ': tags_name_in' no esté en blanco, solo necesito probar si': tags_name_in' se define sin generar un error. Entonces, para mi situación, me gusta el enfoque 'definido?' Dado por Will Ayd. Sin embargo, creo que el enfoque de Mike Lewis puede ser más útil para otros que pueden necesitar evitar pasar un valor nulo a su condición. Por lo tanto, mire ambas respuestas y decida si eso importa en su situación. – Andrew