Cómo representar HTML a partir de una variable de instancia rieles?
-
29-09-2019 - |
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!
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 %>