ruby-on-rails - Flash 消息仅在重定向两次后显示
问题描述
flash[:errors] 在创建方法中的 redirect_to 之后不显示。但是,如果我发送另一个无效表单,它会显示在第二个和所有后续重定向中。当没有错误时,flash[:success] 也是如此。
我已经尝试在这个和我重定向到的路由中使用 flash.keep,并且视图工作,因为消息确实在多次重定向后出现。我想知道是否是因为重定向也是渲染的路由?
In Controller:
def create
user = User.create(user_params)
if user.errors.any?
flash[:errors] = user.errors.full_messages
redirect_back(fallback_location: root_path)
else
flash[:success] = "USER SUCCESSFULLY CREATED"
redirect_to root_path
end
end
In Views:
<% if flash[:errors] %>
<% flash[:errors].each do |error| %>
<p style="color:red;"><%= error %></p>
<% end %>
<% end %>
AND:
<% if flash[:success] %>
<p style="color: red;"><%= flash[:success] %></p>
<% end %>
第一次重定向后不显示任何闪烁消息。在或更多重定向之后,将显示 Flash 消息
解决方案
推荐阅读
- c++ - 如何确保在 C++ 中只输出 6 位、0 填充的十六进制值?
- javascript - createMemoryHistory 仍然报告“浏览器历史需要一个 DOM”
- reactjs - 重置表单后如何更改状态?
- python - 如何在redis中获取特定范围内的索引键?
- javascript - JavaScript 循环数组和制作盒子
- java - 关闭客户端的输出流也会关闭服务器的输入流?
- c# - ASP .NET Core MapSpaFallbackRoute 不起作用
- postgresql - 按给定时区中的相应日期聚合时间戳值
- spring - Spring Security Oauth2 Swagger
- python - 使用 selenium 评论 Instagram 图片