Je suis en train d'écrire un modèle qui gère la saisie de l'utilisateur à partir d'une zone de texte. En suivant les conseils de http://blog.caboo.se/articles/2008/8/25/sanitize-your-users-html-inputje suis le nettoyage de l'entrée dans le modèle, avant l'enregistrement dans la base de données, à l'aide de la before_validate de rappel.
Les parties pertinentes de mon modèle ressembler à ceci:
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
Inutile de dire que cela ne fonctionne pas. Je reçois le message d'erreur suivant lorsque j'essaie d'enregistrer un nouveau Post.
undefined method `white_list_sanitizer' for #<Class:0xdeadbeef>
Apparemment, SanitizeHelper crée une instance de HTML::WhiteListSanitizer, mais quand je le mélange à mon modèle, il ne peut pas trouver de HTML::WhiteListSanitizer. Pourquoi? Que puis-je faire pour le réparer?