我的Rails项目中有一些用于向用户发送文件的HAML视图。它们不会呈现为HTML,只是下载的纯文本文件。这些文件必须匹配非常特定的格式,并且格式具有特殊性,最终要求每隔一行以制表符结束。
Line 0a\t01234
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\t01234
Line 0b
Line 1a\t12345
Line 1b
Line 2a\t23456
Line 2b
有什么方法可以解决这个问题吗?谢谢你的帮助。
答案 0 :(得分:3)
The haml documentation表示代字号(~
)的行为与=
类似,但会保留空格。
这有用吗?
- @line_pairs.each do |line_pair|
~ line_pair.a.words + "\t" + line_pair.a.numbers
~ line_pair.b.words + "\t"
答案 1 :(得分:0)
尝试:preserve
:preserve
- @line_pairs.each do |line_pair|
答案 2 :(得分:0)
matt指出的正确解决方案实际上只是使用ERB,因为HAML并不意味着在这个详细程度上满足控制空白的需求。