我有简单的动作,如下所示:
def edit_password
end
def update_password
if @user.update(user_params)
redirect_to @user, notice: "Password was successfully changed"
else
flash.now[:notice] = "Password not changed"
render :edit_password
end
end
在我看来,我有:
<% if flash[:error]
<%=flash[:error] %>
<% end %>
正确显示闪光信息(未更改密码时)。但是当我重新加载页面时,该消息仍然存在。我相信它应该在页面刷新时消失。我究竟做错了什么?我到处都看,这看起来很简单,但我无法弄清楚。感谢任何帮助。
答案 0 :(得分:0)
我遇到了同样的问题,这是我为解决该问题所做的工作。我在action_controller中创建了以下方法,并在需要时从其他控制器中将其作为before_action过滤器调用:
def clear_flash_messages
flash[:notice] = nil
flash['danger'] = nil
flash['success'] = nil
flash[:warning] = nil
end
这将有效清除所有过时的Flash消息,并且使您可以重新开始,而无论您只是重新加载还是重定向。