Подтвердить что ты не робот

Как вставить специальные HTML-символы с помощью HAML

Когда я говорю:

%p= item.price + " dollars"

Я получаю

50 долларов

вместо того, чтобы иметь символ без разрыва пробела.

Как вставить этот и другие специальные символы с помощью HAML?

4b9b3361

Ответ 1

Как насчет

%p= item.price + " dollars".html_safe

Ответ 3

Опция интерполяции:

%p= "#{item.price} dollars".html_safe

Ответ 4

Я попытался использовать html_safe по-разному, но никто не работал. Использование \xa0, как было предложено ngn, тоже не сработало, но мне удалось попробовать Unicode-побег неразрывного пространства, которое работало:

"FOO\u00a0BAR"

и .html_safe даже не нужны (если, конечно, это не требует чего-то еще в строке).

Язык программирования Ruby, первое издание, гласит: "В Ruby 1.9 строки с двойными кавычками могут включать произвольные escape-символы Unicode с экранами \u. В простейшей форме \u следуют ровно четыре шестнадцатеричных цифры..."

Ответ 5

Этот ответ для немного другого вопроса, но я нашел этот вопрос в поиске его...
Если у вас есть тег submit %input{ :type => "submit", :value => " dollars", :name => "very_contrived" }, даже если вы выбрали html_safe на :value, он не будет оценивать html.
Решение заключается в использовании помощника рельсов... duh

= submit_tag " dollars".html_safe

Это довольно очевидно, но это сбило меня с толку. Legacy code + rails upgrade = этот вид вещей: P

Ответ 6

Вы можете использовать \xa0 в строке вместо  . 0xa0 - это код ASCII неразрывного пространства.

Ответ 7

Я предпочитаю использовать сам символ с экранированным методом HTML с большинством символов, отличных от символов пробелов. Таким образом, мне не нужно запоминать все html-коды. Что касается символов пробелов, которые я предпочитаю использовать CSS, это гораздо более чистый способ.

%p&= "#{item.price} $%&#*@"