2010-11-18 56 views
1

J'ai un objet Post je suis rendu dans une partielle, où un élément estcollection haml et de néant -> strftime

= post.created_at 

Je veux formater le temps donc j'ai des variations essayées de strftime dans la partiel et comme modèle de crochet.

= post.created_at.strftime('etc etc') 
& 
= post.formatted_time 

Ces belles de travail quand il y a quelque chose à rendre, mais quand il n'y a pas un ensemble de postes, il y a une erreur rendu de la page:

undefined method `strftime' for nil:NilClass 

que les premiers travaux quand il y a des aucun post, et crée 1 div post vide sur la page. Je dois faire quelque chose dans le modèle ou le gabarit pour attraper quand il est vide et ne rien rendre, ce qui semble basique mais je n'ai pas encore trouvé les bons termes de recherche pour trouver quelque chose que je comprends à implémenter.

Je poste ceci afin que quelqu'un puisse m'aider à réfléchir à ce que j'ai jusqu'à maintenant. Fondamentalement, j'ai besoin de formater le temps, ce que je peux faire, mais attraper quand il n'y a rien à formater.

Répondre

2

Dans Rails, vous pouvez toujours utiliser try, qui se déroulera la méthode que si created_at est non nul:

= post.created_at.try(:strftime, 'etc etc') 

http://apidock.com/rails/Object/try

+0

qui travaille à sa manière, grâce – anastazja