html - 将 HTML 渲染到 Rails flash 消息中

标签 html ruby-on-rails

如何将 html 渲染到 Rails flash 消息/通知中?

我的 UsersController 有这个 destroy 操作:

def destroy
  User.find(params[:id]).destroy
  flash[:success] = "<i class=\"fa fa-check\"></i> Utilisateur supprimé.".html_safe
  redirect_to users_url
end

当我调用此 destroy 操作时,flash 成功消息打印 html 标记而不是呈现它。

我试过 this回答,但我不知道如何使用它,因为我在 Controller 中而不是在 View 中,所以我没有使用 <%= %> 来嵌入代码。

最佳答案

如果有人遇到同样的问题,这里有一个对我有用的答案:

1st:正如 Justin Licata 所说,.html_safe 方法必须应用于 flash 的消息。

2nd :如果你想在你的消息中使用图标(在我的例子中是很棒的字体),将它放入你的消息字符串中是行不通的,你必须将它放入你的 中。 html 文件打印您的 flash 消息。 (灵感来自 this )

这是我在布局 application.html.erb 中渲染 flash 消息的代码:

<% flash.each do |message_type, message| %>
  <div class="row" id="msgContainer">
    <div class="callout callout-<%= message_type %>" id="flash_message">
      <% if flash[:notice] %>
        <i class="fa fa-info"></i>
      <% end %>
      <% if flash[:danger] %>
        <i class="fa fa-exclamation-triangle"></i>
      <% end %>
      <% if flash[:success] %>
        <i class="fa fa-check"></i>
      <% end %>
      <%= message.html_safe %>
    </div>
  </div>
<% end %>

这对我有用,希望能有所帮助。

关于html - 将 HTML 渲染到 Rails flash 消息中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42535407/

相关文章:

ruby-on-rails - 在使用 Capybara 的测试之间将用户保留在数据库中?

sql - Ruby on Rails : Basic parameterized queries and URL formation

html - 具有不同重复的多个背景的 CSS

html - 固定的 div 宽度超过预期

javascript - 我的 JavaScript 出现问题

javascript - 使用循环定义多个 JQuery 函数

html - 在 div 示例中居中内联列表不起作用

javascript - Rails Ajax 表单没有响应

ruby-on-rails - 如何在保存之前将新数据与 bd 中的现有数据进行比较

ruby-on-rails - Mongoid仅在created_at时间戳上使用