2010-10-07 1 views
8

Ich habe den folgenden Helfer in meiner application_helper.rb Datei:Rails, Warum gibt dieser Helper kein HTML aus, sondern HTML in Anführungszeichen?

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 

Dann in meiner application.html.erb Datei ich habe:

<%= topmenu %> 

Aus irgendeinem Grund wird die Seite erstellt wird die zeigt, HTML vom obigen Helfer als TEXT, nicht HTML. Nicht sicher warum? thx

Antwort

25

Ich nehme an, Sie laufen rails3. In .html_safe Methodenaufruf vor dem Zeichenfolge Rückkehr:

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

Sehr schön danke. Konnte das nirgendwo finden. Verdammt google – AnApprentice

-2

Es ist der Code mehr sauber macht? Ist es nicht? Und Sie können mehr in der Hilfe-Funktion tun (weil es nicht nur ein HTML ist)