我有这堂课:
class SuperAppController < ApplicationController
layout 'app'
add_flash_types :error, :info
skip_before_action :verify_authenticity_token
after_action :check_account!
before_filter do
if current_empresa != nil
authenticate_empresa!
else
authenticate_user!
end
end
private
def check_account!
if empresa_signed_in? && current_empresa.data_pagamento.blank? ||
empresa_signed_in? && current_empresa.data_pagamento && Time.zone.now > current_empresa.data_pagamento + 1.year
redirect_to pagamento_index_path, notice: 'Active your account' and return
end
end
end
我使用函数&#34; check_account&#34;查看用户帐户是否已过期。 加载操作后,我收到此错误:
在此操作中多次调用渲染和/或重定向。 请注意,您最多只能调用渲染或重定向 每次行动一次。另请注意,重定向和渲染都不会终止 执行动作,所以如果你想在之后退出动作 重定向,你需要做类似&#34; redirect_to(...)和 返回&#34;
当我执行before_action而不是after_action时,我得到相同的错误,但是没有加载错误的视图。我从浏览器收到一条消息说:&#34; Localhost无法运行&#34;。我可以在终端上看到很多请求日志。
有人知道我为什么会这么多重定向?
谢谢!