Ruby / Rails - есть ли простой способ сделать жестко закодированные символы HTML html_safe? - PullRequest
3 голосов
/ 02 июня 2011

На мой взгляд, я хочу отобразить некоторые прямые двойные угловые кавычки в моей ссылке.

До Rails 3 это работало:

<%= link_to "&raquo; #{@category.name}", some_path %>

Что мне делать, если я хочу указать &raquo; как html_safe, но не остальную часть текста ссылки?

Другими словами, я не хочу сделать это:

<%= link_to "&raquo; #{@category.name}".html_safe, some_path %> Я не хочу, чтобы @category.name рассматривался как html_safe.

Это дает желаемый результат:

<%= link_to "&raquo;".html_safe + " #{@category.name}", some_path %>

Однако, если я сделаю это:

<%= link_to "#{@category.name}" + "&raquo;".html_safe, some_path %>

Вывод угловых кавычек не считается безопасным. Я вижу &raquo; на своей странице, а не ".

Почему?

Я попытался извлечь "&raquo;".html_safe вспомогательному методу с теми же результатами.

Есть ли способ легко обозначить жестко закодированный текст / символы как безопасный для HMTL в Rails 3?

Спасибо.

Ответы [ 2 ]

3 голосов
/ 02 июня 2011

В этой ситуации я часто явно избегаю небезопасной части:

"&raquo; #{h @category.name}".html_safe
0 голосов
/ 02 июня 2011

вам нужно убедиться, что вся строка html_safe ...

Я бы порекомендовал попробовать это:

   "&raquo; #{h @cagegory.name}".html_safe
...