安全にjoin(‘<br>’)する

Railsのviewで配列を改行区切りでjoinするとき下のように書くとスクリプトが実行されてしまう

= ['<script>alert("hi")</script>', 'b', 'c'].join('<br />').html_safe

-# <script>alert("hi")</script><br />b<br />c

<br>タグだけhtml_safeしたいと思って下のように書いても、join後はhtml_safeにならないのでだめ。

= ['<script>alert("hi")</script>', 'b', 'c'].join('<br />'.html_safe)

-# <script>alert("hi")</script><br />b<br />c

なのでsafe_joinヘルパを使用する

= safe_join ['<script>alert("hi")</script>', 'b', 'c'], '<br />'.html_safe

-# <script>alert("hi")</script><br />b<br />c
タイトルとURLをコピーしました