Причина этого в том, что метод 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>"