Rails / HAML:文本邮件中的换行符

时间:2011-05-16 07:05:13

标签: ruby-on-rails haml actionmailer

我只是想尝试格式化haml生成的(文本)邮件程序模板,而我在阅读多个换行符时遇到了一些困难。例如:我想过

Dear
= @user.name,

Your username is
= @user.username




Your status is
= @user.status

我曾假设会读取多个换行符,但“您的状态为”行会在用户名正下方的行上显示。 (是的,许多换行符夸大了我想要多少但仍然存在)

所以,问题是:haml短信中的换行符......呃,怎么样?

5 个答案:

答案 0 :(得分:35)

您还可以使用\==

Dear
= @user.name,
\
Your username is
= @user.username
\
\
\
\
Your status is
= @user.status

这具有允许您使用插值的附加优势,而使用:plain滤镜则不会。

答案 1 :(得分:14)

我建议将haml用于纯文本模板不会添加任何内容,并且在大多数情况下使它们比普通的旧erb模板更复杂。毕竟,它的主要目的是简化标记并省略关闭标记的需要 - 这不适用于纯文本。

如果您要发送多部分mime电子邮件,则无法阻止您使用html.haml表示HTML模板,text.erb表示纯文本电子邮件,这将保留您的多个换行符:

Dear <%= @user.name %>,

Your username is <%= @user.username %>




Your status is <%= @user.status %>

答案 2 :(得分:9)

尝试使用haml:plain helper。

Dear
= @user.name,

Your username is
= @user.username
:plain



  Your status is
  = @user.status

*编辑 - 您需要在普通过滤器之后缩进您的haml文本,就像通常在haml中一样。

答案 3 :(得分:7)

考虑另一种更清晰的HAML方法。

Dear #{@user.name},

Your username is #{@user.username}
\
\
\
Your status is #{@user.status}

文件名类似于mailer.text.haml

答案 4 :(得分:-5)

使用%br标记表示中断线。您也可以使用%p%div并添加一些css:)