2011-01-27 17 views
12

私は、Google Groupsサブスクリプションフォーム用のHTMLコードを含む文字列を返す私のRailsアプリケーションのためのヘルパーメソッドを持っています。残念ながら、それはプレーンテキストのようにページに出てきます。どのようにしてHTMLとしてレンダリングすることができますか? ありがとうございます。Ruby on Railsヘルパーメソッド - HTMLはプレーンテキストで表示されます

+0

いくつかのコードを表示してください。特にヘルパーが呼び出され結果が表示されるERBファイル内の場所。 –

答えて

42

ヘルパーの結果は、Rails 3で "html_safe"とマークする必要があります。それ以外の場合、タグはエスケープされます。

def my_helper 
    data = "<p>Hello!</p>" 
    data.html_safe 
end 
+0

ありがとう!完璧に働いた。 – SZH

+0

答えを受けてください – Mauricio

+0

私は前に答えを受け入れようとしましたが、私は8分以上待たなければならないと言いました。今それは私を許可します。 – SZH

2

Rails html sanitizeに問題があったとします。レールの変更履歴

から あなたは、もはやHTML出力をエスケープする時間(文字列) を呼び出す必要があり、それはすべてのビューテンプレートで デフォルトでオンになっていません。 にエスケープされていない文字列が必要な場合は、 raw(文字列)を呼び出します。この場合、この

def custom_check_box(checked) 
    '<span class="my-custom-checkbox '+(checked ? 'checked' : '')+'"></span>'.html_safe 
end 

のように複数の文字列を結合するとき

は最後の部分だけが安全なhtmlとしてマークされ、それが

0

一つのことに注意しているしてみてください。あなたはすべてを得ることを確認してください。

def custom_check_box(checked) 
    ('<span class="my-custom-checkbox '+(checked ? 'checked' : '')+'"></span>').html_safe 
end 
関連する問題