ฉันกำลังเขียนแบบจำลองที่จัดการการป้อนข้อมูลของผู้ใช้จากพื้นที่ข้อความ ทำตามคำแนะนำจาก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 ทำไม? ฉันจะทำอย่างไรเพื่อแก้ไขปัญหานี้