2012-03-30 31 views
12

我正在用Haml模板生成一封電子郵件,其中包含解析數組中的信息的動態內容。'array.each do | block |'包括生成的Haml語句的結果HTML

基本上,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中執行代碼時顯示的結果相同。

誰能告訴我如何防止這種情況發生?

回答

20

使用Haml,您不需要使用=代替arrayname.each,因爲這是您要運行但未顯示的Ruby代碼。只需運行代碼,使用連字符。

相反,這應該工作:

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

豬肉我側身。我應該更好地閱讀Haml參考資料,或者早些時候發佈在這裏。我試過的愚蠢的東西...非常感謝! – gagootch 2012-03-31 00:13:59