Piszę model, który obsługuje dane wejściowe użytkownika z obszaru tekstowego. Postępując zgodnie z radą http://blog.caboo.se/articles/2008/8/25/sanitize-your-users-html-input, wyczyszczę dane wejściowe w modelu przed zapisaniem w bazie danych, używając wywołania zwrotnego before_validate.Korzystanie z helperów w modelu: jak dołączyć zależności pomocnicze?
Odpowiednie części mojego modelu wyglądać tak:
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
trzeba dodawać, że to nie działa. Podczas próby zapisania nowego posta pojawia się następujący błąd.
undefined method `white_list_sanitizer' for #<Class:0xdeadbeef>
Najwyraźniej SanitizeHelper tworzy instancję HTML :: WhiteListSanitizer, ale kiedy wymieszać ją do mojego modelu nie może znaleźć HTML :: WhiteListSanitizer. Czemu? Co mogę zrobić, aby to naprawić?
nie mógł powiedzieć, że lepiej sobie – Tilendor
Dzięki. Mam go do pracy, przenosząc dołączyć do wewnątrz definicji klasy. –
Dzięki temu otrzymuję 'poziom stosu za głęboki'. Jest w metodzie before_save. – Automatico