Когда я говорю:
%p= item.price + " dollars"
Я получаю
50 долларов
вместо того, чтобы иметь символ без разрыва пробела.
Как вставить этот и другие специальные символы с помощью HAML?
Когда я говорю:
%p= item.price + " dollars"
Я получаю
50 долларов
вместо того, чтобы иметь символ без разрыва пробела.
Как вставить этот и другие специальные символы с помощью HAML?
Как насчет
%p= item.price + " dollars".html_safe
Используйте !=
вместо =
См. "Unescaping HTML" в ссылке haml: http://haml.info/docs/yardoc/file.REFERENCE.html#unescaping_html
Опция интерполяции:
%p= "#{item.price} dollars".html_safe
Я попытался использовать html_safe
по-разному, но никто не работал. Использование \xa0
, как было предложено ngn, тоже не сработало, но мне удалось попробовать Unicode-побег неразрывного пространства, которое работало:
"FOO\u00a0BAR"
и .html_safe
даже не нужны (если, конечно, это не требует чего-то еще в строке).
Язык программирования Ruby, первое издание, гласит: "В Ruby 1.9 строки с двойными кавычками могут включать произвольные escape-символы Unicode с экранами \u
. В простейшей форме \u
следуют ровно четыре шестнадцатеричных цифры..."
Этот ответ для немного другого вопроса, но я нашел этот вопрос в поиске его...
Если у вас есть тег submit %input{ :type => "submit", :value => " dollars", :name => "very_contrived" }
, даже если вы выбрали html_safe
на :value
, он не будет оценивать html.
Решение заключается в использовании помощника рельсов... duh
= submit_tag " dollars".html_safe
Это довольно очевидно, но это сбило меня с толку. Legacy code + rails upgrade = этот вид вещей: P
Вы можете использовать \xa0
в строке вместо
. 0xa0 - это код ASCII неразрывного пространства.
Я предпочитаю использовать сам символ с экранированным методом HTML с большинством символов, отличных от символов пробелов. Таким образом, мне не нужно запоминать все html-коды. Что касается символов пробелов, которые я предпочитаю использовать CSS, это гораздо более чистый способ.
%p&= "#{item.price} $%&#*@"