在我的应用程序中,我会像这样向用户显示消息。
<% 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">×</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'
有什么建议吗?
感谢。
答案 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' }