gpt4 book ai didi

ruby-on-rails - rails : how to exclude post requests for a before_action in the application controller

转载 作者:行者123 更新时间:2023-12-02 03:43:31 25 4
gpt4 key购买 nike

我有一个 Rails 应用程序。我在应用程序 Controller 中使用 before_action 来获取所有已识别用户的变量(我在 header 中使用它,因此我的所有 View 都需要它)。

但是,它减慢了我所有不需要变量的发布请求。我试图找到一种方法来搜索它,但找不到任何东西。另外,我不确定我正在做的事情是否是应用程序 Controller 的最佳实践......

如何排除此 before_action 的所有发布请求?

一种解决方案是将代码复制/粘贴到我的所有 Controller 中,但这似乎不是最好的...

谢谢。

最佳答案

您可以通过多种方式做到这一点。一种方法是在之前的操作中仅使用和 except ,如下所示除外:

before_action :method_name, except: %I[create update]

如果您想跳过任何其他成员或集合路由,则必须使用skip_before_action,如果您的应用程序有许多路由,则必须为所有 Controller 添加跳过。

如果您只想针对发布请求跳过它,那么如果您想排除所有发布请求,则可以更改您的方法(before_action 方法),如下所示。 (请记住,它将接受所有内容,包括放置和删除)。

def method_name
return if request.post?
do your stuff
end

通过其他方式,我们还可以做一件事,只允许 get 请求。

def method_name
return unless request.get?
do your stuff
end

关于ruby-on-rails - rails : how to exclude post requests for a before_action in the application controller,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47605276/

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