Ruby on rails Rails 4:渲染和/或重定向在此操作中被多次调用
我有这门课:Ruby on rails Rails 4:渲染和/或重定向在此操作中被多次调用,ruby-on-rails,ruby-on-rails-4,url-redirection,Ruby On Rails,Ruby On Rails 4,Url Redirection,我有这门课: 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
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
class SuperAppControllercurrent_empresa.data_pagamento+1.5年
重定向到pagamento_索引路径,注意:“激活您的帐户”并返回
结束
结束
结束
我使用“check_account”功能查看用户的帐户是否过期。
加载操作时,我收到以下错误:
在此操作中多次调用渲染和/或重定向。
请注意,您最多只能调用render或redirect
每个动作一次。还要注意,重定向和渲染都不会终止
操作的执行,因此如果要在
重定向,您需要执行类似“重定向到(…)和
返回”
当我在\u操作之前而不是在\u操作之后执行操作时,我会得到相同的错误,但是没有加载错误的视图。我从浏览器收到一条电子消息:“Localhost不工作”。我可以在终端上看到很多请求日志
有人知道我为什么会收到这么多重定向吗
谢谢 要触发此动作后的
,您必须对特定动作发出请求。介意在你的问题中包括这个吗?可能是你的支票账户代码>应该是动作之前的
。考虑一个动作:<代码>渲染< /Cal> >一些视图。一个动作可以呈现
或重定向到
一次。如果您的操作被呈现,那么您的检查尝试将\u重定向到
,然后您就会遇到此问题。你可能想在呈现动作之前将你重定向到
,我试过了。当我执行before_操作时,我会得到相同的错误,但是错误视图没有加载。我从浏览器上收到一条消息:“Localhost不工作”您能提供您试图呈现的来自SuperAppController
的操作吗?这不是答案,但使用这样的回调(有些人可能会说),使这类事情很难调试。我会删除你所有的回调(在*之前和之后),并在你正在执行的操作中直接处理这些事情。然后事情就会更清楚了。我的应用程序的这一部分来自这个类。所以很多其他类都有这个继承。这不仅仅是一个。所有部分都继承这个类。大约有12个类继承了这个类。要触发这个动作后的,您必须对特定动作发出请求。介意在你的问题中包括这个吗?可能是你的支票账户代码>应该是动作之前的
。考虑一个动作:<代码>渲染< /Cal> >一些视图。一个动作可以呈现
或重定向到
一次。如果您的操作被呈现,那么您的检查尝试将\u重定向到
,然后您就会遇到此问题。你可能想在呈现动作之前将你重定向到
,我试过了。当我执行before_操作时,我会得到相同的错误,但是错误视图没有加载。我从浏览器上收到一条消息:“Localhost不工作”您能提供您试图呈现的来自SuperAppController
的操作吗?这不是答案,但使用这样的回调(有些人可能会说),使这类事情很难调试。我会删除你所有的回调(在*之前和之后),并在你正在执行的操作中直接处理这些事情。然后事情就会更清楚了。我的应用程序的这一部分来自这个类。所以很多其他类都有这个继承。这不仅仅是一个。所有部分都继承这个类。大约有12个类继承了这个类。