flash [:alert]无法正常工作,但flash [:notice]会在重定向时显示消息

时间:2015-09-21 08:13:16

标签: ruby-on-rails ruby-on-rails-4 erb

我正在使用rails_admin gem,配置如下

config.authorize_with do
  if current_user.nil? || current_user.role != 'admin'
    redirect_to main_app.root_path
    flash[:alert] = "Sorry you are not authorized!"
  end
end

当我使用flash[:notice]时,我可以在root_path上看到该消息,但是如果我将其更改为flash[:alert]则不显示,任何想法为什么以及解决方案是什么?

我只想使用:alert,因为更改通知颜色会导致所有其他通知显示红色字体。

1 个答案:

答案 0 :(得分:2)

您可能没有在页面上输出flash [:alert]哈希值。

在你的视图中查看输出flash [:notice]的位置(可能在app / views / layouts / application.html.erb(或类似)中,并将通知行复制到alert。它应该看起来像这样:

<% if flash[:alert] %>
      <div id="alert">
         <%= flash[:alert] %> 
      </div>
<% end %>

如果不存在(或找不到),请将其添加到视图(或布局)