String#join
не SafeBuffer
-осведомленный.
String#html_safe
отмечает, что ваша строка уже экранирована HTML, что предотвращает проникновение пользователей на ваши страницы. Прочтите этот пост Иегуды Каца на SafeBuffer
и почему / как вы должны их использовать.
Если у вас есть массив String
и SafeBuffer
, который вы хотите объединить, убедитесь, что вы запустили #html_safe
для них всех или #concat
их для SafeBuffer
, например, так:
['<one>', '<p>two</p>'.html_safe].inject ''.html_safe, &:concat
=> "<one><p>two</p>"
В Rails есть встроенный помощник safe_join
, который сделает это за вас.