Estoy escribiendo un modelo que maneja la entrada del usuario desde un área de texto. Siguiendo los consejos del http://blog.caboo.se/articles/2008/8/25/sanitize-your-users-html-input, estoy limpiando la entrada en el modelo antes de guardar en la base de datos, utilizando la devolución de llamada before_validate.Uso de ayudantes en el modelo: ¿cómo incluyo las dependencias de ayudante?
Las partes pertinentes de mi modelo de aspecto:
include ActionView::Helpers::SanitizeHelper
class Post < ActiveRecord::Base {
before_validation :clean_input
...
protected
def clean_input
self.input = sanitize(self.input, :tags => %w(b i u))
end
end
Huelga decir que esto no funciona. Recibo el siguiente error cuando intento guardar una publicación nueva.
undefined method `white_list_sanitizer' for #<Class:0xdeadbeef>
Al parecer, SanitizeHelper crea una instancia de HTML :: WhiteListSanitizer, pero cuando lo mezclo en mi modelo no puede encontrar HTML :: WhiteListSanitizer. ¿Por qué? ¿Qué puedo hacer al respecto para solucionarlo?
no podría haber dicho mejor – Tilendor
Gracias. Lo tengo que trabajar moviendo el include al interior de la definición de la clase. –
Con esto obtengo 'stack level too deep'. Está en un método before_save. – Automatico