2010-05-14 8 views
11

Tengo una aplicación de Rails (blog) que estoy creando. Cosas muy básicas. En mi área de contenido, tengo un área de texto para el contenido de la publicación. Necesito incluir algunos html en el área de texto (enlaces, formateo, etc.).En Rails, ¿cómo puedo permitir algunos html en un área de texto?

<%= f.text_area :content %> 

¿Hay otra etiqueta que puedo utilizar en lugar de text_area, que permitirá que haga esto?

+0

¿Desea que sus usuarios puedan escribir HTML en el área de texto, o realmente desea incluir su propio HTML dentro del área de texto, es decir, botones que crean enlaces, etc.? –

Respuesta

17

¿Has probado esto en las vistas?

<%= content.html_safe %> 
0

text_area_tag es probablemente lo que quiere.

+0

Creo que tienes razón. Ahora si puedo hacer que funcione. – Norm

+0

Obtuve text_area_tag para que funcione, sin embargo, eso todavía no me permitió ingresar html en el área de texto. – Norm

+0

Si eso ayudó pero no respondió completamente la pregunta, edite su pregunta y agregue más información que muestre lo que ha cambiado. Agregue un resultado simulado que muestre lo que desea ver y deberíamos poder ayudarlo más. –

1

¿Está buscando algo similar a la negrita, cursiva, ... opciones que se obtiene al publicar en stackoverflow? Si es así, sugeriría Markitup, un complemento de editor de texto para jQuery. Una vez que obtenga esta configuración, podrá ingresar marcas en su área de texto (por ejemplo, Markdown, bbcode, ...). Cuando realmente muestra el resultado en la página, simplemente necesita que Ruby analice el lenguaje de marcado que eligió.

E.g.

<%= @user.bio.bb_code %> 

Con este método, permite que sus usuarios ingresen texto con estilo de manera segura.

+0

Pero, ¿cómo se puede permitir solo un html específico? Me gusta incluir listas, pero excluir, no sé, por ejemplo, tablas. – dee

+2

Está buscando Sanitize. http://apidock.com/rails/ActionView/Helpers/SanitizeHelper/sanitize – ghayes

5

El método HTML seguro es en realidad .html_safe. Acabo de probar en un campo de texto.

Por ejemplo:

<%= @item.description.html_safe %> 
+2

Cómo evitar las secuencias de comandos XSS en este caso, ¿qué pasa si el usuario coloca algunas etiquetas de script? – shajin

8

Ésta es una vieja pregunta, pero supongo que hay un punto de vista bastante simple ayudante para esto: desinfecte. Supongo que querrá renderizar las etiquetas HTML ingresadas por el usuario. Para ese propósito, guarde el contenido como una cadena y represéntelo como HTML usando sanitize.

Ejemplo de uso:

sanitize @post, tags: %w(strong em a code pre h2 h3 p blockquote ul ol li br), 
       attributes: %w(href class) 

La opción de etiquetas le permite especificar qué etiquetas usar y lo mismo con los atributos HTML.

+0

¡ESTA es la respuesta correcta! Las versiones '.html_safe' permitirían todas las etiquetas html (¡incluidas las etiquetas'

  • 11. jQuery Escapar HTML a partir de un área de texto
  • 12. ASP.NET - ¿Cómo escribir algunos html en la página? Con Response.Write?
  • 13. Escapar HTML en Rails
  • 14. jQuery ajustar el texto seleccionado en un área de texto
  • 15. Agregar un salto de línea en un área de texto HTML
  • 16. Limitar palabras en un área de texto
  • 17. ¿Cómo puedo tener diferentes colores de fuente en un área de texto?
  • 18. tinyMCE - edición de código fuente en un área de texto
  • 19. Permitir al usuario editar solo algunos de los campos en Ruby on Rails
  • 20. Cómo crear un área de texto en Android
  • 21. Consistencia de fuente en un área de texto
  • 22. ¿Cómo se pueden mostrar los estilos en un área de texto HTML
  • 23. Permitir selectivamente etiquetas html inseguras en Plone
  • 24. ¿Cómo puedo encontrar la ubicación del cursor (X/Y, no línea/columna) en un área de texto HTML?
  • 25. Longitud máxima en un área de texto en Ruby on Rails
  • 26. Capturar texto pegado en un área de texto con JQuery
  • 27. área de texto dentro div
  • 28. ¿cómo llenas un área de texto con jquery y linebreaks?
  • 29. MVC3 HTML Helper para gran área de texto
  • 30. ¿Es posible crear un área de mapa html en porcentaje?