Использование 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, которое не возвращает разметку, а второе должно возвращать разметку.