因此,在我们的Rails应用程序中,我们通过执行config.exceptions_app = self.routes
和
%w[401 403 404 500].each do |code|
get code, to: 'errors#show', defaults: { code: code }
end
我们还使用Devise进行身份验证。
我们注意到一种奇怪的情况,即当用户登录并显示成功登录的Flash消息,但立即出现错误时,会显示Flash,但如果用户刷新页面,Flash将再次显示,再次,永远不会清除。
如果他们访问另一个没有错误的页面,则他们将再次看到闪存(因为未清除),但随后将成功清除。因此,似乎exceptions_app某种程度上绕过了Rails中闪烁的清除...
要解决此问题,我们已经完成:
class ErrorsController < ApplicationController
def show
flash.clear # clear all flashes
render params[:code].to_s, status: params[:code]
end
end
因此,我们清除了错误上的闪烁,以便以后不再显示它们...
有什么想法为什么会这样?这是Rails的exceptions_app中的错误吗?