Rails电子邮件 - 没有看到电子邮件中的换行符

时间:2011-12-03 00:02:32

标签: ruby-on-rails-3

我有一些内容在数据库中存储了换行符,当我使用simple_format在浏览器上查看我的内容时,我看到内容显示的是换行符,这很好。问题在于,当我发送电子邮件时,会删除换行符并将其全部显示在一行上。这是我的邮件..

def new_announcement(announcement)
  @announcement = announcement
  addresses = @announcement.email_list.split(',')
  mail(:to => addresses, :from => @announcement.from_email, :subject => @announcement.title, :content_type => "text/html") do |format|
    format.html
  end
end

..然后在我看来new_announcement.html.erb

<!DOCTYPE html>
<html>
  <head>
    <meta content="text/html; charset=UTF-8" http-equiv="Content-Type" />
  </head>
  <body>
    <p>
      <%= simple_format @announcement.content %>
    </p>
    <div class="faint-display">
      This announcement was sent via the iTeam Announcements page for DA (<%= link_to "http://goto/iteam", "goto/iteam" %>)
    </div>
  </body>
</html>

公告的内容显示在一行而不是浏览器中的换行符。有什么我做错了吗?谢谢!

2 个答案:

答案 0 :(得分:0)

大多数情况下,邮件客户端在解释html方面并不像浏览器那样更新。在为电子邮件编写视图时,您应该使用较旧的技术,例如
标签和不幸的......表格等。

答案 1 :(得分:0)

好的,所以想通了。事实证明,电子邮件视图不知道应用程序中的布局(CSS源代码)或任何辅助方法,因此您需要明确提及这些方法。这就是我没有的,而且效果很好!

<!DOCTYPE html>
<html>
  <head>
    <meta content="text/html; charset=UTF-8" http-equiv="Content-Type" >
    <style type="text/css" media="screen">
       body {font-family: verdana; font-size: 10pt}
       div {color: gray; font-style:italic; font-size: 8pt}
    </style>
  </head>
  <body>
    <p>
        <%= ApplicationController.helpers.simple_format(@announcement.content) %>
    </p>
  </body>
</html>