Как использовать объекты UTF-8 в представлении Rails? - PullRequest
0 голосов
/ 22 сентября 2010

Rails, по-видимому, преобразует амперсанд в начале сущности utf-8 в сущность HTML: &

Так что ▲ становится ▲, но я бы хотел вместо этого отобразить стрелку вниз, каковым обычно является объект utf-8.

Я использую Rails 2.3.8 и Ruby 1.8.7.

Вот как выглядит вид:

<%= get_arrow_from_helper(order) %>

А вот как выглядит помощник:

def get_arrow_from_helper(order)
    arrow = order == "ASC" ? "&#x25B2;" : "&#x25BC;"
    html = "<div>#{arrow}</div>"
    return html
end

1 Ответ

2 голосов
/ 22 сентября 2010

Какую версию Rails вы используете? Если вы используете Rails 3 (или плагин rails_xss), Rails по умолчанию будет избегать содержимого, чтобы предотвратить внедрение XSS.

<%= "Copyright &copy; 2010" %>

распечатает

Copyright &amp;copy; 2010

Есть несколько способов:

  1. используйте помощник raw, но только если вы уверены, что содержимое, которое вы печатаете, поступает из безопасного источника.

    <%= raw "Copyright &copy; 2010" %>
    
  2. пометить строку как безопасную, но только если вы уверены, что строка действительно безопасна

    <%= "Copyright &copy; 2010".html_safe %>
    
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...