'array.each do | block |'включая результаты выписки в сгенерированном Haml HTML - PullRequest
13 голосов
/ 31 марта 2012

Я генерирую электронное письмо с динамическим содержимым из шаблона Haml, который анализирует информацию из массива.

По сути, Haml получает массив, заполненный несколькими хэшами. В коде у меня есть блок, который выглядит так:

%table 
  =arrayname.each do |object|
    %tr
      %td= object.name
      %td= object.link

Всякий раз, когда электронное письмо отправляется, весь объект arrayname включается в низ HTML. Это заставляет [#,#] (больше #, когда есть больше объектов) показываться в top блока. Нет способа манипулировать этим фрагментом текста с помощью CSS, иначе я бы просто спрятал его.

[#<Release @id=181 @title="test" @amurl="test.com" @iturl="test.com" @cover="test.com" @date="2012-03-28" @artist_name="Test">, #<Release @id=182 @title="test" @amurl="test.com" @iturl="test.com" @cover="" @date="2012-03-31" @artist_name="Test">]

Строка идентична результатам, показанным при выполнении кода в IRB.

Может кто-нибудь сказать мне, как предотвратить это?

1 Ответ

21 голосов
/ 31 марта 2012

С Haml вам не нужно использовать = для arrayname.each, потому что это код Ruby, который вы хотите запустить, но не отображать.Чтобы просто запустить код, используйте дефис.

Вместо этого это должно работать:

%table 
  - arrayname.each do |object|
    %tr
      %td= object.name
      %td= object.link
...