在ruby on rails flash消息中添加HTML

Alb*_*bzi 15 ruby-on-rails

我有一条flash[:success]信息是这样的:

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

<b>This text is now bold</b>
Run Code Online (Sandbox Code Playgroud)

如何将HTML包含在Flash消息中?

Bac*_*uty 19

<%= flash[:success].html_safe %>在您的视图中使用.

每当你flash[:success]的空白时,它都会显示错误html_safe.所以最好使用一个条件.

因此,请尝试以下操作来防止该错误:

<%= flash[:success].html_safe unless flash[:success].blank? %>
Run Code Online (Sandbox Code Playgroud)

您还可以.try用来防止该错误:

<%= flash[:success].try(:html_safe) %>
Run Code Online (Sandbox Code Playgroud)

如果你知道有内容肯定,你也可以尝试:

<%= raw flash[:success] %>
Run Code Online (Sandbox Code Playgroud)

ERB特定的HTML显示

最重要的是,由于您使用的是ERB,因此可以使用h()HTML转义字符串的方法:

<%= h flash[:success] %>
Run Code Online (Sandbox Code Playgroud)

查看有关ERB的本教程,了解其他选项,例如显示JSON或URL编码的字符串.