Как вставить специальные HTML-символы с HAML - PullRequest
41 голосов
/ 10 июня 2011

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

%p= item.price + " dollars"

Я получаю

50 долларов

вместо неразрывного пробела.

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

Ответы [ 7 ]

70 голосов
/ 10 июня 2011

Как насчет

%p= item.price + " dollars".html_safe
14 голосов
/ 16 августа 2013

Используйте != вместо =

См. "Неэкранирование HTML" в справочнике хамла: http://haml.info/docs/yardoc/file.REFERENCE.html#unescaping_html

12 голосов
/ 29 августа 2013

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

"FOO\u00a0BAR"

и .html_safe isn 'даже не требуется (если, конечно, что-то в строке не требуется).

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

11 голосов
/ 10 июня 2011

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

%p= "#{item.price} dollars".html_safe
4 голосов
/ 01 марта 2012

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

= submit_tag " dollars".html_safe

это довольно очевидно, но это сбило меня с толку.Устаревший код + обновление рельсов = такие вещи: P

0 голосов
/ 10 мая 2017

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

%p&= "#{item.price} $%&#*@"
0 голосов
/ 10 июня 2011

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

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