2010-10-07 14 views
8

Ho il seguente aiuto nel mio file application_helper.rb:Rails, Perché questo helper non emette HTML, ma piuttosto HTML tra virgolette?

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 

Poi nel mio file application.html.erb ho:

<%= topmenu %> 

Per qualche ragione, la pagina sta generando mostra la HTML dall'assistente sopra come TEXT, non HTML. Non sai perché? thx

risposta

25

Suppongo che tu stia utilizzando le guide3. Aggiungere .html_safe chiamata di metodo, prima di tornare stringa:

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

Molto bello grazie. Non potrei trovarlo da nessuna parte. Accidenti a google – AnApprentice

-2

rende il codice più pulito? Non è vero? E puoi fare di più nella funzione di aiuto (perché non è solo un codice HTML)

Problemi correlati