Использование content_tag с HAML

У меня трудности с выяснением, как получить content_tag работать с HAML.

Без HAML я бы сделал что-то вроде этого:

<%= content_tag "div", id: "instagrams", data: { instagrams: @instagrams } do %>
<% end %>

Я пробовал следующее, но безрезультатно:

%div#instagrams{ instagrams: @instagrams }

%div{ id: "instagrams", data: { instagrams: @instagrams } } do

- haml_tag("div", id: "instagrams", data: { instagrams: @instagrams })

Я пробовал Google, но до сих пор не могу понять это. Есть идеи?

1 ответ

Я думаю, что вы хотите это:

#instagrams{ data: { instagrams: @instagrams.to_json } }

В HAML вам не нужно %div (это значение по умолчанию для тега), так что вы можете просто поставить идентификатор, и вам все еще нужно определить data: для атрибутов данных, а не только атрибуты HTML.

Кроме того, вы должны оставить do часть блока для всего, что не является выполнением кода ruby ​​(например, haml_tag или как помощник рельсов form_for). В HAML пустое пространство имеет большое значение, поэтому подразумевается структура вложенных блоков.

Проблема с вашим haml_tag пример может быть, что вы использовали - вместо =, В HAML первое означает выполнение ruby, которое не возвращает разметку, а второе должно возвращать разметку.

Другие вопросы по тегам