在我的RSpec电子邮件测试中,我使用换行符渲染一些文本视图:
class MyMailer < ActionMailer::Base
def email1
@foo = "Hello"
@bar = "World"
mail(to: "test@example.com", subject: "Foobar")
end
end
这是视图email1.text.erb
<%= @foo %>
<%= @bar %>
这是我的考验:
it 'renders output' do
body = MyMailer.email1.body
puts body
end
当我在终端中打印电子邮件正文时,ruby返回\n
而不是实际的换行符:
Hello\n\nWorld
出于调试目的,最好在终端上打印实际的换行符而不是
\n
。有没有办法做到这一点?
答案 0 :(得分:1)
您的编码似乎有些不对劲。由于这仅用于调试目的,您可以使用以下命令修复它:
puts body.to_s.gsub('\n', "\n")
(注意引号之间的区别!)。要以正确的方式修复它,您需要告诉您的身体编码是什么,因为它用于将原始邮件正文转换为ruby字符串。
答案 1 :(得分:0)
我建议在email1.text.erb
<%= @foo + '\n' + @bar %>
答案 2 :(得分:-1)
你必须逃避角色。使用\\n