Я пишу модель, которая обрабатывает ввод пользователя из текстовой области. Следуя рекомендациям http://blog.caboo.se/articles/2008/8/25/sanitize-your-users-html-input, я очищаю входные данные в модели перед сохранением в базе данных, используя обратный вызов before_validate.
Соответствующие части моей модели выглядят следующим образом:
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
Излишне говорить, что это не работает. При попытке сохранить новую запись появляется следующая ошибка.
undefined method `white_list_sanitizer' for #<Class:0xdeadbeef>
По-видимому, SanitizeHelper создает экземпляр HTML:: WhiteListSanitizer, но когда я смешиваю его с моей моделью, он не может найти HTML:: WhiteListSanitizer. Зачем? Что я могу сделать с этим, чтобы исправить это?