使用exceptions_app时未清除Flash

时间:2018-11-13 09:33:06

标签: ruby-on-rails ruby

因此,在我们的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中的错误吗?

0 个答案:

没有答案