Почему атрибуты не установлены в этом самозакрывающемся haml_tag?
Я собираю хамл вывод, используя вспомогательный метод haml_tag
, Однако конкретный элемент, который я хочу захватить, является <meta/>
тег, и поэтому я пытаюсь выяснить, как получить самозакрывающийся тег, а также включить атрибуты.
Это работает (почти)
haml_tag 'meta', '', name: :description, content: 'this is the description'
выходы:
<meta content='this is the description' name='description'></meta>
Однако я хотел бы вывести:
<meta content='this is the description' name='description' />
Это само закрывается, но не печатает атрибуты...
Если вы передаете флаг :/
тогда должна быть возможность самозакрыть тег, однако в этом случае атрибуты не будут распечатаны:
haml_tag 'meta', nil, :/, name: :description, content: 'this is the description'
выходы:
<meta />
Как я могу получить лучшее из обоих миров?
1 ответ
Просто опустите второй аргумент, если вы хотите пустой тег:
haml_tag 'meta', name: :description, content: 'this is the description'
производит:
<meta content='this is the description' name='description' />
Обратите внимание, что с meta
является одним из пустых элементов по умолчанию, вам не нужно :/
аргумент, хотя вы можете добавить его, если хотите быть явным:
haml_tag 'meta', :/, name: :description, content: 'this is the description'
производит тот же вывод, что и выше.
Здесь есть ошибка в Haml 4.0.5, так как haml_tag
не уважает format
вариант. В формате HTML вывод должен быть:
<meta content='this is the description' name='description'>