Ich schreibe ein Modell, das Benutzereingaben aus einem Textbereich verarbeitet. Nach den Ratschlägen von http://blog.caboo.se/articles/2008/8/25/sanitize-your-users-html-input bereinige ich die Eingabe im Modell, bevor ich sie mit dem before_validate in der Datenbank speichere zurückrufen.
Die relevanten Teile meines Modells sehen folgendermaßen aus:
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
Das funktioniert natürlich nicht. Ich erhalte die folgende Fehlermeldung, wenn ich versuche, einen neuen Beitrag zu speichern.
undefined method `white_list_sanitizer' for #<Class:0xdeadbeef>
Anscheinend erstellt SanitizeHelper eine Instanz von HTML :: WhiteListSanitizer, aber wenn ich es in mein Modell mische, kann es HTML :: WhiteListSanitizer nicht finden. Warum? Was kann ich dagegen tun, um das Problem zu beheben?