Limpiar TextArea

30 views
Skip to first unread message

Andrés gutiérrez

unread,
Mar 4, 2012, 7:51:07 AM3/4/12
to La lista sobre Ruby On Rails (rubyonrails.com) en castellano
Hola, he hecho un gist para explicar mi problema:
https://gist.github.com/1972837

RESUMEN:
Quiero quitar guarrerias de los parrafos que se pegan en los text areas ya que los usuarios los pegan con estilos inline del tipo: style="font-family: 'Times New Roman';"

Quiero limpiar los textos que ya tengo en la BBDD y evitar que metan guarrerias en el futuro. Uso TinyMCE con Rails y he visto que en la version que uso hay esto:
http://www.tinymce.com/wiki.php/Plugin:paste

Pero no esta funcionando. Igual es que no lo tengo activado. Usi rails 3.1 con https://github.com/spohlenz/tinymce-rails

¿Os habeis encontrado con un problema similar?

Borja Martín

unread,
Mar 4, 2012, 8:00:08 AM3/4/12
to ror...@googlegroups.com
Buenas,
para limpiar html yo uso la librería de ruby para llamar a Tidy(http://tidy.sourceforge.net/): http://rubydoc.info/gems/tidy/1.1.2/frames
Lo puedes configurar para permitir sólo ciertos elementos y atributos y así quitarte la ponzoña que venga sobre todo de hacer copypastes

Salud!


--
You received this message because you are subscribed to the Google
Groups "ror-es" group.
To post to this group, send email to ror...@googlegroups.com
To unsubscribe from this group, send email to
ror_es+un...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/ror_es?hl=en
Rails no escala.



--
def dagi3d(me)
  case me
    when :web then  "http://dagi3d.net"
    when :twitter then "http://twitter.com/dagi3d"
  end
end

Alejandro Riera

unread,
Mar 4, 2012, 8:16:18 AM3/4/12
to ror...@googlegroups.com

Para limpiar desde el lado del servidor podrías usar el sanitizer de Rails. Puede escribir en el modelo algo como

class Post < ActiveRecord::Base
def sanitize_text
     self.text = ActionController::Base.helpers.sanitize self.text, :tags => %w(b i em a br strong p), :attributes => %w(href)
end
end
de manera que sólo permites que existan etiquetas como b, i ,em, strong, a, y el único atributo permitido es href.
In the game of chess you can never let your adversary see your pieces.

Miguel Michelsongs

unread,
Mar 4, 2012, 11:27:26 AM3/4/12
to ror...@googlegroups.com
revisa tambien la gema sanitize (funciona con nokogiri)

saludos

Atte.
Miguel Michelson Martinez
www.artenlinea.com


2012/3/4 Alejandro Riera <ari...@gmail.com>

Andrés gutiérrez

unread,
Mar 4, 2012, 11:49:21 AM3/4/12
to ror...@googlegroups.com
Gracias Miguel ya la habia visto. De echo lo he puesto en el primer mail :)

Aunque lo estoy haciendo como ha dicho Alejandro. Ahora pego un gist

Andrés gutiérrez

unread,
Mar 4, 2012, 12:59:01 PM3/4/12
to ror...@googlegroups.com
Hola de nuevo, al final lo he hecho solo con los helpers de Rails. :O

https://gist.github.com/1974146

En development me funciona rapido en los tres sitios:
  1. En la vista al hacer el strip del campo
  2. En el modelo en el before_safe
  3. En la tarea rake para limpiar registros antiguos
¿Como lo veis?

Pablo Formoso Estrada

unread,
Mar 4, 2012, 1:09:19 PM3/4/12
to ror...@googlegroups.com
Tiene buena pinta Andrés, me hago un fork del gist para ver que tal tira con CKEditor que también guarrea lo suyo ;)

sds!!!

Andrés gutiérrez

unread,
Mar 4, 2012, 1:11:55 PM3/4/12
to ror...@googlegroups.com
Tirara bien, no tiene que ver nada con el WYWYG que uses...creo :)

Un saludo,
Andres

Borja Martín

unread,
Mar 4, 2012, 5:34:31 PM3/4/12
to ror...@googlegroups.com
Buenas,
yo lo veo bien, pero si no me equivoco en la tarea rake no hace falta que hagas la llamada a sanitize_text ya que al hacer el save ya se ejecuta el filtro y te lo sanea
salud!

Andrés gutiérrez

unread,
Mar 5, 2012, 2:02:36 AM3/5/12
to ror...@googlegroups.com

Tienes razon. No lo había pensado :)

Reply all
Reply to author
Forward
0 new messages