我有一条flash[:success]
消息是这样的:
flash[:success] = "This text is now bold."
. 但是,当我将文本设置为粗体时,它只是将 HTML 字符包裹在消息周围,而不是实际变为粗体。
<b>This text is now bold</b>
如何将 HTML 包含到 Flash 消息中?
我有一条flash[:success]
消息是这样的:
flash[:success] = "This text is now bold."
. 但是,当我将文本设置为粗体时,它只是将 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,因此您可以h()
对 HTML 转义字符串使用方法:
<%= h flash[:success] %>
将消息另存为
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 %>