Estoy seguro de que esto ya se ha preguntado, pero no puedo encontrar la respuesta.Evitar nil en las vistas de Rails
Tengo un modelo de proyecto, que tiene una relación belongs_to
con mi modelo de cliente. Un cliente tiene un nombre, pero un proyecto no necesariamente tiene un cliente.
En mi opinión, tengo un código como éste:
<%=h project.client && project.client.name %>
porque si el proyecto no tiene un cliente a continuación, tratar de acceder a project.client.name
provoca una NoMethodError (nil
no tiene un método llamado name
).
La pregunta es, ¿es aceptable tener este tipo de comprobación nula en la vista, o debería estar buscando otra forma de evitarlo?
Olvidé esa ... :) Sin embargo, todavía se pone pesado cuando recorres 5-6 modelos de profundidad. :( – DGM
http://en.wikipedia.org/wiki/Law_of_Demeter – Reactormonk
@Tass Tienes razón acerca de la ley de Demeter, pero creo que esa no es la manera correcta de implementarlo, por favor mira mi publicación a continuación. – dombesz