2010-10-07 9 views
8

Tengo el siguiente ayudante en mi archivo application_helper.rb:Rails, ¿Por qué este helper no imprime HTML, sino HTML entre comillas?

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 

Luego, en mi archivo tengo application.html.erb:

<%= topmenu %> 

Por alguna razón, la página está generando que muestra el HTML del asistente anterior como TEXTO, no HTML. No estoy seguro por qué? thx

Respuesta

25

Supongo que está ejecutando rails3. Añadir .html_safe método de llamada antes de devolver la cadena:

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

Muchas gracias. No pude encontrar eso en ningún lado. Maldito google – AnApprentice

-2

Esto hace que el código sea más limpia? ¿No es así? Y puede hacer más cosas en la función de ayuda (porque no es solo un html)

Cuestiones relacionadas