2011-01-27 16 views
12

Tengo un método de ayuda para mi aplicación Rails que devuelve una cadena con código HTML para un formulario de suscripción a Grupos de Google. Lamentablemente, aparece en la página como texto sin formato. ¿Cómo puedo forzarlo a que se presente como HTML? Gracias de antemano.Método de Ruby on Rails Helper: HTML se muestra como texto sin formato

+0

Por favor muéstranos un código; particularmente el lugar en su archivo ERB donde se llama al ayudante y se muestran los resultados. –

Respuesta

42

El resultado de su ayuda debe marcarse como "html_safe" en Rails 3. De lo contrario, las etiquetas se escaparán.

def my_helper 
    data = "<p>Hello!</p>" 
    data.html_safe 
end 
+0

Gracias! Funcionó perfectamente – SZH

+0

acepta la respuesta por favor – Mauricio

+0

Intenté aceptar la respuesta antes, pero decía que tenía que esperar 8 minutos más. Ahora me deja. – SZH

2

supongo que era un problema con rieles desinfectar html. de rieles lista de cambios

Ya no es necesario llamar h (cadena) para escapar de salida HTML, que está activada de forma predeterminada en todos los plantillas de vista. Si quiere la cadena sin escindir, llame al sin procesar (cadena).

intentarlo

0

Una cosa a tener en cuenta es cuando se unen varias cadenas como éste

def custom_check_box(checked) 
    '<span class="my-custom-checkbox '+(checked ? 'checked' : '')+'"></span>'.html_safe 
end 

En este caso, sólo la última parte se marca como html seguro. Asegúrate de obtener todo.

def custom_check_box(checked) 
    ('<span class="my-custom-checkbox '+(checked ? 'checked' : '')+'"></span>').html_safe 
end