2013-11-24 77 views
0

我的Rails項目中有一些HAML視圖用於向用戶發送文件。它們不是以HTML格式呈現,而是以純文本格式下載。這些文件必須匹配非常特定的格式,並且格式具有特殊性,最終需要每隔一行以製表符結束。如何告訴HAML在視圖行尾保留空格?

Line 0a\t
Line 0b\t 
Line 1a\t12345 
Line 1b\t 
Line 2a\t23456 
Line 2b\t 

a線有有自己的製表符印刷精美,但b線沒有。如果我在製表符之後添加任何非空白字符,則將打印製表符。但是當它是線上的最後一個字符時,它不會。

我的觀點看起來像

- @line_pairs.each do |line_pair| 
    = line_pair.a.words + "\t" + line_pair.a.numbers 
    = line_pair.b.words + "\t" 

我敢肯定,製表符不存在(我的編輯直觀地顯示了它們)。也沒有空間或類似的東西。我剛剛得到

Line 0a\t
Line 0b 
Line 1a\t12345 
Line 1b 
Line 2a\t23456 
Line 2b 

有什麼辦法解決這個問題嗎?謝謝你的幫助。

+0

http://stackoverflow.com/questions/9660987/how-to-get-a-tab-character – apneadiving

+0

感謝您的建議,但這是行不通的。結果文件的標籤應該是' '。 – Glacials

+0

如果將[難看的選項](http://haml.info/docs/yardoc/Haml/Options.html#ugly-instance_method)設置爲true,它會起作用嗎? (在生產環境中,Rails應該默認爲醜陋的) – matt

回答

0

正確的解決方案,由馬特指出,實際上只使用ERB,作爲HAML並不意味着填補圍繞在這個級別的細節控制的空白需求。

3

The haml documentation表示代字符(~)的行爲與=一樣,但保留了空格。

這是行不通的?

- @line_pairs.each do |line_pair| 
    ~ line_pair.a.words + "\t" + line_pair.a.numbers 
    ~ line_pair.b.words + "\t" 
0

嘗試:preserve

:preserve 
    - @line_pairs.each do |line_pair|