Ruby on Rails引导警报框

时间:2017-06-21 17:35:46

标签: ruby-on-rails notifications alert bootstrap-4

在我的应用程序中,我会像这样向用户显示消息。

<% flash.each do |key, value| %>
    <div class="alert alert-<%= key %> alert-dismissible">
        <button type="button" class="close" data-dismiss="alert" aria-label="Close"><span aria-hidden="true">&times;</span></button>
        <%= value %>
    </div>
<% end %>

我的申请表中有以下几行

.alert-notice {
  @extend .alert-warning;
}

当我使用redirect_to root_url重定向用户时,:notice =&gt; '消息'一切都很完美。可以看到通知消息。但是,当我使用redirect_to root_url引导用户时,:info =&gt; '消息',没有消息可以看到。我已经调试了代码,并意识到闪存是空的。

没关系:

redirect_to root_url, :notice => 'messages'

这是问题:

redirect_to root_url, :info => 'messages'

有什么建议吗?

感谢。

2 个答案:

答案 0 :(得分:2)

如果您想使用info,则必须将其添加到application_helper.rb

add_flash_types :info

您可以根据需要添加任意数量的额外类型,例如

add_flash_types :info, :success, :warning, :danger

额外:

我还建议你习惯Ruby中的新hast符号

redirect_to root_url, info: 'messages' # instead of :info => ...

答案 1 :(得分:0)

:info不是redirect的虚荣选项(只有:alert:notice可以这样使用);因此,要使用info,您必须将其直接分配给flash

请改为尝试:

flash[:info] = 'messages'
redirect_to root_url

或者这个:

redirect_to root_url, flash: { info: 'messages' }