如何控制纯文本电子邮件视图中的换行符(.text.erb)

时间:2013-02-15 14:10:16

标签: ruby-on-rails ruby-on-rails-3 actionmailer plaintext

与大多数纯文本电子邮件相关的问题不同,我的问题是Rails发送的纯文本电子邮件中有过多的换行符

为了简单起见,我完全抛弃了HTML电子邮件,只使用纯文本电子邮件(使用.text.erb视图)。我的问题出现在视图中有条件行的地方,因为我的视图文件中的新代码行会转移到电子邮件中。

例如:

    Line 1
    <%= "Line 2" if false %>
    Line 3

将呈现为:

    Line 1

    Line 3

而不是预期的输出:

    Line 1
    Line 3

我目前的黑客是使用以下内容:

    Line 1
    <%= "Line 2\n" if false %>Line 3

当连续存在多个条件时,这可能会变得非常混乱。

当然必须有更好的方法!

2 个答案:

答案 0 :(得分:4)

这是为了回答Felix关于Andy Waite的回答的问题(我不认为评论中可以使用多行代码,这个问题是关于多行代码)。

我认为<%= "foo\n" if something -%>会起作用,但这对我来说似乎更清晰:

Line 1
<% if something -%>
foo
<% end -%>
Line 3

答案 1 :(得分:3)

如果您使用-%>结束ERB标记,应该避免无关的空格:

<%= "foo" -%>