Подтвердить что ты не робот

'array.each do | block |' включая результаты инструкции в созданном HTML-формате HTML

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

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

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

Всякий раз, когда отправляется электронное письмо, весь объект arrayname включен в нижней части HTML. Это вызывает [#,#] (больше #, когда есть больше объектов), чтобы отображаться в верхней части блока. Невозможно манипулировать этим текстом с помощью 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.

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

4b9b3361

Ответ 1

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

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

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