ruby on rails 3 - tag - Deshabilitar escapes de HTML en plantillas erb
form_with ruby on rails (3)
Intenta usar raw(somePost.content)
. Alternativamente, somePost.content.html_safe
.
En una aplicación Rails 3 tengo una clase de dominio donde un atributo almacena contenido HTML puro (es una aplicación de blog, la clase de dominio es Post).
En las plantillas de ERB, necesito mostrar el contenido del atributo tal como se formó, con las etiquetas HTML en su lugar. ¡Pero, Rails está escapando todas las etiquetas HTML! ¿Cómo puedo desactivar este comportamiento para este atributo de clase?
Ejemplo:
somePost = Post.new
somePost.content = "<strong> Hi, i''m here! </strong>"
En la plantilla erb:
<%= somePost.content %>
El HTML generado se escapó:
<strong> Hi, i''m here! </strong>
Usar un doble igual significa que el resultado no se escapa ...
<%== somePost.content %>
Vea esta ASEJA pregunta al respecto: ¿Qué hace <% ==%> en los rieles erb?
Use raw(string)
, como se describe en las notas de la versión .
7.4.3 Otros cambios
Ya no es necesario llamar a h (cadena) para escapar de la salida HTML, está activado por defecto en todas las plantillas de visualización. Si quieres la cadena no escamada, llama raw (cadena).
Básicamente, donde lo hiciste
<%=h @model.attr %>
antes de que puedas usar ahora
<%= @model.attr %>
y donde lo hiciste antes de poder usar ahora
<%=raw @model.attr %>