在ruby on rails flash消息中添加HTML

我有一个flash[:success]消息,如下所示:

flash[:success] = "This text is now bold." 。 但是,当我将文本设为粗体时,它只是在消息周围包裹HTML字符,而不是实际变为粗体。

 This text is now bold 

如何将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] = "This text is now bold." 

将html文件放入

 
<%=h flash[:notice]%>

您可以在Flash消息中添加任意HTML,但是您需要使用html_safe来对其进行非转义。

 flash[:error] = "Crap! We lost everything." 

在视图中:

 <%= flash[:error].html_safe %>