2010-10-29 3 views
3

Я использую HAML для создания html-шаблонов, но у меня проблема с написанием атрибутов, которые будут заменены шаблоном шаблона JavaScript.Escape/Игнорировать специальные символы в атрибутах HAML

линия в вопросе выглядит следующим образом:

%div{:class => "<%= from_class %>"} 

HAML пытается кодировать <% =%> теги:

<div class="&lt;%= from_class %&gt;"> 

Я не хочу, чтобы это произошло в данном случае. .. Кто-нибудь знает, как это сделать?

ответ

4

В следующей версии Haml (3.1) есть опция :escape_attrs, которую вы можете установить на false, чтобы предотвратить это. Вы также сможете передать --no-escape-attrs в командной строке. Чтобы использовать это прямо сейчас, вы можете установить альфа-версию с gem install haml --prerelease.

+0

Это работало отлично, спасибо! :) –

+2

Может быть полезен для новичков (как я), нуждающихся в этом совете: ** 1. Добавьте это в свой Gemfile: ** 'gem 'haml', '> = 3.1.1'' - ** 2. Запустить ** 'bundle install' - ** 3. Добавьте это в свой файл 'config/environment.rb': **' Haml :: Template.options [: escape_attrs] = false' - ** 4. Наконец, перезапустите сервер. ** Вы также можете найти документацию для этой опции [здесь] (http://haml-lang.com/docs/yardoc/file.HAML_REFERENCE.html#escape_attrs-option) – rchampourlier

0

От this ответа, используйте отдельную переменную рубиновый с html_safe:

- foo = "&#x0026".html_safe 
%a(href='/posts' data-icon=foo aria-hidden='true') 
Смежные вопросы