Usa el método try en Rails y mejora tú código

En Rails existe el método try, el cual está diseñado para recibir el nombre de un método a ejecutar en el objeto y retornar nil en caso que el método no esté disponible, según la documentación de Rails:

Invokes the public method whose name goes as first argument just like
public_send+ does, except that if the receiver does not respond to it the
call returns +nil+ rather than raising an exception.

Este método es agregado a la clase Object por lo cuál está disponible en todas las instancias que tienen Object en sus ancestros.

Esto lo hace muy útil para código en general, en vistas ERB por ejemplo dónde se agregan condiciones cómo la siguiente para evitar errores en las vistas:

1
2
3
<% if @person.name %>
<%= @person.name %>
<% end %>

Usando try simplemente podemos cambiar por este código:

1
<%= @person.try(:name) %>

El método try también puede enviar argumentos y bloque al método receptor:

1
2
3
@posts.try(:each_slice, 2) do |a, b|
...
end

En general este es un método muy útil y poco extendido su uso hasta dónde he visto.

Happy coding!

avatar

Blog neyDroid

Desarrollando Vagancias