Pregunta

Tengo una variable intstance estoy pasando a una vista, @body.

@body es una cadena con html en ella.

<%= @body %> hace que la cadena, no el html. ¿Cómo se renderiza el html en la cadena?

Posible?

Gracias de antemano!

¿Fue útil?

Solución

<%= @body %> emitiría algo de HTML si tuviera algo de HTML en @body. Es un poco raro tener html en esa variable, ya que no se supone que el controlador para pasar todo el código HTML (El controlador tiene que ser vista agnóstico).

Esto es por eso que tenemos algunos métodos de ayuda. Hacer un método de ayuda que genera algo de HTML, y lo utilizan en su opinión.

Otros consejos

La respuesta ya no es cierto. 3 carriles automáticamente escapa html para usted, por lo que cuando se tiene en un controlador:

@error = "<h1>OMG u broke teh intertubez!!111</h1>"

Esta es la salida del HTML sin escapar:

<%= raw @error %>

Y tanto esto va a escapar el código HTML:

<%= h @error %>
<%= @error %>
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top