如何使用引导程序显示我的 Flash 消息?
Posted
技术标签:
【中文标题】如何使用引导程序显示我的 Flash 消息?【英文标题】:How do I get my Flash Message to show using bootstrap? 【发布时间】:2014-09-17 01:48:21 【问题描述】:我已经导入了 bootstrap,并且正在使用“bootstrap-sass” gem 和 devise gem。问题是我的 rails 应用程序显示正确的消息,例如如果我已登录并且我尝试注册它会显示消息“您已经登录”。但没有消息周围的颜色,如黄色或红色或任何颜色。
<div class="container">
<% flash.each do |name, msg| %>
<%= content_tag(:div, msg, class: "alert alert-#name") %>
<% end %>
</div>
当我在渲染后检查 chrome 中的元素时,我得到 'class="alert alert-alert"'
在"alert alert-#name"
上面的代码中,名称是应该更改为信息、成功、警告或危险的关键。但它不断变化以提醒哪个引导程序没有。我该如何解决这个问题?
【问题讨论】:
如何在控制器中设置 flash 消息? 看到这个答案:***.com/a/18913115/617320 【参考方案1】:您可以通过将控制器中的 Flash 消息设置为 flash[:success]
、flash[:info]
、flash[:warning]
或 flash[:danger]
(而不是 flash[:alert]
)来解决此问题。
对于 Devise,您需要将 Devise 控制器复制到您的 Rails 应用程序中以覆盖这些值。或者,如果设置了 flash[:notice]
或 flash[:alert]
,您可以手动显示引导警报:
<% if flash[:notice] %>
<div class="alert alert-info">
<%= flash[:notice] %>
</div>
<% end %>
<% if flash[:alert] %>
<div class="alert alert-danger">
<%= flash[:alert] %>
</div>
<% end %>
【讨论】:
以上是关于如何使用引导程序显示我的 Flash 消息?的主要内容,如果未能解决你的问题,请参考以下文章