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

时间:2012-03-30 23:57:06

标签: ruby haml

我正在使用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 个答案:

答案 0 :(得分:21)

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

相反,这应该有效:

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