J'ai un flash_helper que j'ai téléchargé de façon incommode à partir de certains tutoriels Web, qui me reviennent maintenant à la tête. Du bon côté, je suis sûr que les nombreux codeurs talentueux trouveront cela facile. :)Rails 3 joue avec mon flash!
# application_helper
def flash_helper
[:notice, :warning, :message].map { |f| content_tag(:div, flash[f], :class => f) if flash[f] }
end
Ce code, combiné avec <% = flash_helper%> dans mon point de vue, est leader sur le code HTML suivant généré:
["<div class=\"notice\">Your account has been reactivated.</div>", nil, nil]
... ce qui rend cette chaîne comme peu attrayante dans la vue elle-même:
["<div class=\"notice\">Your account has been reactivated.</div>", nil, nil]
Comment réécrire le code pour le trier?
[nul, nul, nul]
La chaîne ci-dessus est envoyé à tous mes vues par le code ci-dessus flash_helper quand il n'y a pas de flash. Comment ce code peut-il être réécrit pour ne rien afficher lorsqu'il n'y a pas de flash?
Salut Shingara, merci beaucoup. Cela m'évite certainement d'avoir à ajouter html_safe à chaque vue! Je reçois toujours [nul, nul, nul] sur les vues qui n'ont pas de flash. – sscirrus
si compact après. Je mets à jour ma réponse – shingara
C'est parce que vous devez vérifier zéro avant d'appeler la méthode. Fondamentalement, si vous avez un flash, appelez flash_helper, sinon n'appelez pas. Cela devrait vous donner le comportement que vous voulez. – sosborn