Je suis sûr que cela a déjà été demandé, mais je ne trouve pas la réponse.Éviter les vues nulles dans Rails
J'ai un modèle de projet, qui a une relation belongs_to
avec mon modèle client. Un client a un nom, mais un projet n'a pas nécessairement de client.
À mon avis, j'ai le code comme ceci:
<%=h project.client && project.client.name %>
parce que si le projet ne dispose pas d'un client puis essayez d'accéder project.client.name
provoque une NoMethodError (nil
ne dispose pas d'une méthode appelée name
).
La question est, est-il acceptable d'avoir ce genre de vérification nulle dans la vue, ou devrais-je chercher un autre moyen de contourner le problème?
J'ai oublié celui-là ... :) Cependant, il devient toujours pénible quand vous traversez vers le bas 5-6 modèles profonds. :( – DGM
http://en.wikipedia.org/wiki/Law_of_Demeter – Reactormonk
@Tass Vous avez raison sur la loi de demeter, mais je pense que ce n'est pas la bonne façon de l'implémenter, s'il vous plaît voir mon post ci-dessous – dombesz