我正在编写一个处理来自文本区域的用户输入的模型。遵循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。为什么?我该如何解决这个问题?