【问题标题】:Flash message does not have bootstrap classesFlash 消息没有引导类
【发布时间】:2015-09-02 05:58:37
【问题描述】:

我有一个视图,我想在其中显示某些事件的 Flash 消息。我可以看到 Flash 消息,但没有像 bootstrap 那样显示颜色。例如绿色表示成功,蓝色表示通知等,但我看到的一切都是白色的。

这是我的代码:

<% flash.each do |name, msg| %>
   <%= content_tag :div, msg, class: name %>
<% end %>

PS:这不是完整的代码,只是代码 sn-p 给出想法,其他引导类正在工作,但这里除了丑陋的白色背景中的消息外,我什么也没得到。有什么建议吗?

【问题讨论】:

    标签: html css ruby-on-rails twitter-bootstrap ruby-on-rails-4


    【解决方案1】:

    您可以使用辅助方法根据flash 通知消息的类型分配适当的引导类:

    def alert_for(flash_type)
        {
            success: 'alert-success',
            error: 'alert-danger',
            alert: 'alert-warning',
            notice: 'alert-info'
        }[flash_type.to_sym] || flash_type.to_s
    end
    

    然后将其用作:

    <% flash.each do |name, msg| %>
       <%= content_tag :div, msg, class: [:alert, alert_for(name)]%>
    <% end %>
    

    【讨论】:

    • 这个def方法应该在控制器中还是在html页面中?
    • 可以放到helpers文件夹中(module ApplicationHelper,application_helper.rb
    【解决方案2】:

    我猜你应该给出正确的 css 类。

    此处的“name”应替换为“alert alert-success”。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-06-14
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多