gpt4 book ai didi

ruby-on-rails - 使用Devise before_action :authenticate_user!不会做任何事情

转载 作者:行者123 更新时间:2023-12-04 10:00:21 26 4
gpt4 key购买 nike

我试图要求在Rails 4网站上的所有页面上登录。
在ApplicationController中,我添加了before_action :authenticate_user!,但它根本不执行任何操作。我试图将相同的before_action :authenticate_user!添加到另一个 Controller ,并且工作正常。

我是否需要对ApplicationController进行其他操作,以使所有操作(登录/登录除外)都需要登录?

最佳答案

这是我们使用的实际代码:

#app/controllers/application_controller.rb
Class ApplicationController < ActionController::Base
#Actions
before_action :authenticate_user! #-> routes to the login / signup if not authenticated
end

您可能遇到的问题有两个:

--

确保其他 Controller 从application_controller继承:
#app/controllers/other_controller.rb
Class OtherController < ApplicationController
...
end

--

您以某种方式“跳过”了before_action回调

如果您在任何地方都使用 skip_before_action,则需要将其删除。这可能会导致您的 authenticate_user!方法出现问题。为了解决这个问题,我首先要测试没有任何 skip_before_action回调,然后看看是什么使其正常工作

进一步说明- signin / signup无关紧要。它们都继承自 Devise Controller ;它们将按要求运行。

关于ruby-on-rails - 使用Devise before_action :authenticate_user!不会做任何事情,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23855893/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com