'array.each do | block |' 包括生成的Haml HTML中的语句结果

gag*_*tch 13 ruby haml

我正在使用Haml模板生成一封包含动态内容的电子邮件,该模板解析数组中的信息.

基本上,Haml收到一个充满了几个哈希的阵列.在代码中我有一个块,看起来像这样:

%table 
  =arrayname.each do |object|
    %tr
      %td= object.name
      %td= object.link
Run Code Online (Sandbox Code Playgroud)

每当发送电子邮件时,整个对象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">]
Run Code Online (Sandbox Code Playgroud)

该行与在IRB中执行代码时显示的结果相同.

谁能告诉我如何防止这种情况发生?

kaf*_*hau 21

使用Haml,您不需要使用=for,arrayname.each因为您想要运行的Ruby代码,但不显示.要只运行代码,请使用连字符.

相反,这应该工作:

%table 
  - arrayname.each do |object|
    %tr
      %td= object.name
      %td= object.link
Run Code Online (Sandbox Code Playgroud)