Заменить все ">" (>) внутри тегов <code> - PullRequest
0 голосов
/ 06 июня 2010

Как мне заменить все &gt; на > и &lt; на < внутри тега <code> на ruby?

Например:

<code>&lt;script&gt;`alert('I steal cookies');`&lt;/script&gt;</code>

С:

<code><script>alert('I steal cookies);<script><code>

Причина этого в том, что метод h() экранирует все < and >.

1 Ответ

2 голосов
/ 06 июня 2010

Причина этого в том, что метод h () экранирует все < и >

Метод работает правильно, теги должны экранироваться. Почему вы хотите их убрать?

Если вы не хотите выходить из выходных данных (потому что вы действительно хотите выводить теги), просто не вызывайте h().

Если вы не можете контролировать вызов h(), вы можете пометить вашу строку как «безопасную HTML», вызвав соответствующий метод в вашей строке перед передачей ее на h(). Но очень трудно сказать, подходит ли это вам:

s = "<strong>example</strong>".html_safe
h(s) # = "<strong>example</strong>"

Или:

s = "<strong>example</strong>"
s.html_safe!
h(s) # = "<strong>example</strong>"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...