2009-06-18 8 views
2

ActionViewからSanitizeメソッドを使用しようとしています。Rails:LibでのActionViewメソッドの使用によるエラー

ラインr_str = Helper.instance.sanitize(r_str, :tags => @@allowed_tags, :attributes => @@allowed_attribs)は私にこれは私が間違っているのは何lib/parsers.rb

module Parsers 
    module HTML 
    @@allowed_tags = %w(--snip--) 
    @@allowed_attribs = %w(--snip--) 

    class Helper 
     include Singleton 
     include ActionView::Helpers::SanitizeHelper 
    end 

    #Use built-in santizer and the Hpricot plugin 
    def self.clean(str) 
     rgx = /<code>(.*?)<\/code>/ #All html within a code tag should be escaped. 
     r_str = str.gsub(rgx) { |match| "<code>" + CGI.escapeHTML(match[5..-7]) + "</code>" } # TODO: test this. 
     r_str = Helper.instance.sanitize(r_str, :tags => @@allowed_tags, :attributes => @@allowed_attribs) 
     Hpricot(r_str) 
    end 

    end 

    --snip-- 

end 

で私のコードがある

undefined method `white_list_sanitizer' for Parsers::HTML::Helper:Class 

エラーを与えていますか?

ます。またサニタイズヘルパー

class Helper 
    include Singleton 
    include ActionView::Helpers::SanitizeHelper 

    class << self 
    include SanitizeHelper::ClassMethods 
    end 
end 

答えて

-1

この回答を選択した理由を私は知らないレールで適切なクラスがHTML::Sanitizer

+2

です...これらのどれものために働いていません私。 – bchurchill

+0

未定義のメソッド 'sanitize 'はHTML :: Sanitizer:Class –

0

をActionViewが含ま単にない代わりに」の(私はリスクを知っている、HTMLを提出したユーザーを許可することの危険性についてはコメントしないでください): :ヘルパー:: SanitizeHelper」、

include ActionView::Helpers 

これは上記SanitizeHelperからクラスメソッドにミックスされます、そして、あなたのコードが動作します。

注:私はまた、明示的に行うための提案を見てきました:

extend ActionView::Helpers::SanitizeHelper::ClassMethods 
1

からクラスのメソッドを必要とする

関連する問題