2010-10-07 8 views
8

je l'aide suivante dans mon fichier application_helper.rb:Rails, Pourquoi cette aide ne sort pas HTML, mais plutôt HTML entre guillemets?

def topmenu 
    pages = { 
     "projects" => projects_path, 
     "photos" => photos_path 
    } 
    pages.map do |key, value| 
     classnames = %(class="current") if controller.controller_name == key 
     "<li#{classnames}>#{link_to(key, value)}</li>" 
    end 
    end 

Puis dans mon dossier application.html.erb je:

<%= topmenu %> 

Pour une raison quelconque, la page génère montrant la HTML de l'aide ci-dessus comme texte, pas HTML. Pas certain de pourquoi? thx

Répondre

25

Je présume que vous utilisez rails3. Ajouter .html_safe appel de méthode avant de retourner la chaîne:

"<li#{classnames}>#{link_to(key, value)}</li>".html_safe 
+0

Très gentil merci. Je n'ai pas trouvé ça n'importe où. Merde google – AnApprentice

-2

Il rend le code plus propre? N'est-ce pas? Et vous pouvez faire plus de chose dans la fonction d'aide (parce que ce n'est pas seulement un html)

Questions connexes