在ruby on rails flash消息中添加HTML



我有一条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 %>

最新更新