ruby-on-rails - 尝试重定向到登录页面时,获取此页面不起作用将您重定向了太多次错误
问题描述
我有一个简单的应用程序控制器,我对它的行为感到困惑。它只是不允许我连接到登录页面
class ApplicationController < ActionController::Base
before_action :do_atthestart
protected
def do_atthestart
redirect_to login_path
end
end
一旦点击“redirect_to login_path”,我会在浏览器上收到错误消息
此页面无法正常工作重定向您太多次
在日志上我得到以下信息
Started GET "/login" for .................................. SessionsController#new 处理为 HTML 重定向到 http://127.0.0.1:3000/login过滤器链因 :do_atthestart 渲染或重定向而停止 已完成 302 在 3 毫秒内找到(ActiveRecord:0.0 毫秒 | 分配:282)
有谁知道如何超越它?
先感谢您
解决方案
before_action
正在创建一个无限循环。
它适用于从 继承的任何控制器中的任何操作ApplicationController
,包括SessionsController#new
. 回调重定向到该操作,然后调用回调,回调重定向到该操作,依此类推。
一种技术是before_action
在每个控制器中加载。然后,在您的会话控制器中,您可以排除回调中的函数:
class SessionsController < ApplicationController
before_action :do_atthestart, except: :new
end
推荐阅读
- php - 在包装中不起作用
- python - 在 z3py 中声明外部函数
- maven - mavenCentral()、jCenter() 和 mavenLocal() 的区别?
- 3d - 最大点云细化
- csv - Neo4j 将数据库导出为 CSV 的最佳方式
- vba - 将数据从一个工作簿复制到另一个工作簿的宏
- javascript - Firebase google auth 未完全退出
- outlook - 通过 Rest API 推送联系人时的 Office 365 / Outlook 问题
- c++ - 在 CPP 中初始化 typedef 结构变量
- angular - AngularJS 2方式数据绑定不起作用?