2011-07-27 5 views
2

がここに最初のいくつかのコンソール出力があります:idはsimple_formatヘルパーで属性許可コンセプトの証明として

ruby-1.9.2-p180 :010 > x = "<span id='c_3'>s</span>" 
=> "<span id='c_3'>s</span>" 
ruby-1.9.2-p180 :011 > helper.simple_format(x) 
=> "<p><span>s</span></p>" 

この理由はそれの一番最後にsanitizeメソッドを呼び出すsimple_format Railsのヘルパーメソッドが実行だということで、そのメソッドは属性を取り除きます。

私は、sanitizeが削除されるべきではない属性を指定できることを知っています。私の質問は:どういうわけかsimple_formatを介して "ホワイトリストされた"属性(この場合はid)を渡すことは可能ですか?

ありがとうございます!

答えて

2

あなたはホワイトリストを渡すことはできませんが、

simple_format(x, :sanitize => false) 

http://api.rubyonrails.org/classes/ActionView/Helpers/TextHelper.html#method-i-simple_format

+0

AHを行うことによって完全にサニタイズを無効にすることができます!私は今参照してください。ソースを見ると、完全にクリックするオプション[:sanitize] == falseがない限り、この行 'text = sanitize(text)を参照してください。ありがとう@Dogbert! –

+5

実際には、サニタイズを無効にするには、_third_引数を使用する必要があります.2番目の引数は "htmlオプション"です。別のハッシュです。正しい形式は

simple_format(x, {}, :sanitize => false)
です –

関連する問題