【问题标题】:Exclude a controller from before_action从 before_action 中排除控制器
【发布时间】:2023-03-29 01:26:01
【问题描述】:

我正在使用before_action 过滤器调用authenticate,如果用户无权访问请求的页面,该方法会将用户重定向回其主页。

我想从这一步中排除一个页面,仅用于测试目的。

到目前为止,我所看到的是,我可以使用 except 来排除某些控制器操作,使其不受 before_action 过滤器的影响,例如:

before_action :authenticate, except: :demo_login

我也可以像这样一次排除多个操作:

before_action :authenticate, except [:demo_login, :demo_show]

如何排除特定控制器中的所有操作?

【问题讨论】:

    标签: ruby-on-rails ruby-on-rails-4 controller


    【解决方案1】:

    在相关控制器中使用skip_before_action :authenticate

    此方法的格式与before_action 相同,因此如果您想跳过对特定控制器操作的调用:authenticate,请使用:

    skip_before_action :authenticate, only: [:show, :index]

    except: 关键字也可以使用。

    【讨论】:

    • before 动作可能存在于继承的控制器中。有没有办法排除控制器而不是父控制器中的操作?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-08-26
    • 2016-09-20
    相关资源
    最近更新 更多