2012-04-30 14 views
17

マイヘルパーは次のように動作します。レールヘルパー - どのように私はヘルパーは私に `<br/>`(またはその他のマークアップ)を得るために取得することができます

def some_help(in_string) 
    in_string + " and more" 
end 

しかし、私はそれが出力する前に
に行いたいと私< br>の文字を文字通りそのまま入手してください。つまり、ブレークではなく、私が欲しいのは< br>です。

ので

def some_help(in_string) 
    "<br/>" + in_string + " and more" 
end 

が正しく動作しません。

+0

通常、特に動作しないものについて言及したいと思います。 –

+1

quesrionを更新しました – junky

答えて

33

利用tag(:br)の代わり"<br/>"

content_tag(:br)brタグを開閉を作成し、rawまたはhtml_safeを使用すると、(危険な言及しないように)だけで醜いです。

+0

なぜ 'raw'または' html_safe'を使うのが危険ですか? – fmmatheus

+1

ユーザ入力で 'raw'と' html_safe'を使い、その入力をエスケープするのを忘れた場合、あなたはXSS攻撃のために自分自身を設定します。 'raw("
#{h user_input} ")'はOKですが、 'raw("
#{user_input} ")'は危険です。違いは 'h'メソッドで、' html_escape'メソッドのエイリアスです。 – Ashitaka

2

わかりません。文字列に<br />を追加すると、改行の効果が得られるようにしながらプレーンに留まりますか?その場合は、文字列をhtmlセーフとしてマークする必要があります。 "somestring".html_safeでこれを行います。

0

Railsは自動的にHTML文字をエスケープします。文字列に.html_safeを使用してください。

関連する問題