2010-10-21 7 views
16

Estoy tratando de llamar al sanitize dentro de un controlador. Esto es lo que he intentado:Uso de esterilizar dentro de un controlador Rails

class FooController < ApplicationController 
    include ActionView::Helpers::SanitizeHelper 
    # ... 
end 

Sin embargo, estoy recibiendo este error:

undefined method `white_list_sanitizer' for FooController:Class 

Busqué y personas recomendadas cambiar la línea incluyen a incluir ActionView::Helpers, pero que los resultados en este error:

undefined method `url_for' for nil:NilClass 

¿Cuál es la forma correcta de llamar al sanitize? Estoy usando Rails 2.3.5.

+1

¿Por qué necesita esto? –

+1

Para, por ejemplo, desinfectar la entrada del usuario antes de pasarlo a RDiscount para generar HTML a partir del contenido de Markdown. – pmc255

Respuesta

-4

No estoy seguro de lo que está tratando de hacer aquí, pero estoy casi 100% seguro de que no pertenece al controlador.

Si desea desinfectar un atributo antes de guardarlo en la BD, hágalo en el modelo con una devolución de llamada antes de guardar.

De lo contrario, higienice en la plantilla de vista o vea el ayudante.

+5

Lo más probable es que intentara hacer texto usando AJAX sin usar una vista. –

35

puede utilizar este método de acción dentro ActionController::Base.helpers:

class SiteController < ApplicationController 
    def index 
    render :text => ActionController::Base.helpers.sanitize('<b>bold</b>') 
    end 
end 

Esperanza esto ayuda

+0

¡Me has ahorrado mucho tiempo dando vueltas, gracias! – d11wtq

+0

¡Muchas gracias! Solo para el registro (y google): esta es la solución perfecta para usar sanitizer desde un método de ayuda que se llama desde un controlador. –

Cuestiones relacionadas