gpt4 book ai didi

ruby-on-rails - Rails 中几个 Controller 的skip_before_action?

转载 作者:行者123 更新时间:2023-12-04 09:30:36 24 4
gpt4 key购买 nike

嗨,我正在为应用程序构建一个 api 部分。我所有的 api 相关 Controller 都位于 app/controllers/api 中目录。

我担心的是在 application_controller有过滤器before_action
:authenticate_user!
,所以我必须处于登录模式才能访问 api。

我目前的解决方案:我正在添加 skip_before_action :authenticate_user!在所有 Controller 中app/controllers/api目录..

问题:我必须写在所有 Controller 中,我有大约 80 个 Controller

我的期望:有什么方法可以写在application_controller本身是这样的
before_action :authenticate_user!,除了:[ all the controllers which are in api directory ]

最佳答案

您必须指定 skip_before_action :authenticate_user!在每个不应对其操作进行身份验证的 Controller 中。你不能将 Controller 的名称或任何类似的东西作为参数传递给 skip_before_action方法。

一种解决方案是:您可以制作一个名为 APIController 的 Controller 。 ,您可以指定 skip_before_action那里的事情像:

class APIController < ApplicationController
skip_before_action :authenticate_user!
# rest of the code
end

然后是 app/controllers/api/ 处的所有 Controller 可以继承自 APIController .
class OtherController < APIController
end

关于ruby-on-rails - Rails 中几个 Controller 的skip_before_action?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36882672/

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