2012-03-30 27 views
12

Tôi đang tạo một email có nội dung động từ một mẫu Haml phân tích thông tin từ một mảng.'array.each do | block |' bao gồm các kết quả của câu lệnh trong tạo ra Haml HTML

Về cơ bản, Haml nhận được một mảng chứa nhiều băm. Trong đoạn code tôi có một khối mà trông như thế này:

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

Bất cứ khi nào email được gửi toàn bộ đối tượng arrayname được bao gồm tại đáy của HTML. Điều này gây ra [#,#] (hơn # khi có nhiều đối tượng hơn) hiển thị ở số đầu trang của khối. Không có cách nào để thao tác đoạn văn bản này với CSS, nếu không tôi sẽ chỉ ẩn nó đi.

[#<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">] 

Dòng này giống với kết quả được hiển thị khi thực thi mã trong IRB.

Có ai có thể cho tôi biết cách ngăn điều này xảy ra không?

Trả lời

20

Với Haml, bạn không cần phải sử dụng = cho arrayname.each vì đó là mã Ruby bạn muốn chạy, nhưng không được hiển thị. Để chỉ chạy mã, hãy sử dụng dấu nối.

Thay vào đó, điều này sẽ làm việc:

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

thịt lợn tôi sang một bên. Tôi nên có hoặc đọc các tài liệu tham khảo Haml tốt hơn hoặc đăng trên đây trước đó. Những điều ngớ ngẩn tôi đã thử ... Cảm ơn rất nhiều! – gagootch

Các vấn đề liên quan