我有一些内容在数据库中存储了换行符,当我使用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>
公告的内容显示在一行而不是浏览器中的换行符。有什么我做错了吗?谢谢!
答案 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>