我有一条flash[:success]
消息,如下所示:
CCD_ 2。然而,当我将文本设为粗体时,它只是将HTML字符包裹在消息周围,而不是实际变为粗体。
<b>This text is now bold</b>
如何将HTML包含到flash消息中?
在视图中使用<%= flash[:success].html_safe %>
。
当您的flash[:success]
为空时,它将显示由于html_safe
而导致的错误。所以最好使用一个条件。
因此,尝试使用以下方法来防止该错误:
<%= flash[:success].html_safe unless flash[:success].blank? %>
您也可以使用.try
来防止该错误:
<%= flash[:success].try(:html_safe) %>
如果你确定有内容,你也可以试试:
<%= raw flash[:success] %>
ERB特定的HTML显示
除此之外,由于您使用的是ERB,因此可以对HTML转义字符串使用h()
方法:
<%= h flash[:success] %>
查看本ERB教程,了解其他选项,例如显示JSON或URL编码的字符串。
将消息保存为
flash[:success] = "<b>This text is now bold.</b>"
作为放入html文件中
<div class="notice">
<%=h flash[:notice]%>
</div>
您可以将任意HTML添加到flash消息中,但您需要使用html_safe
才能使其无标题。
flash[:error] = "<em>Crap!</em> We lost everything."
视图中:
<%= flash[:error].html_safe %>