Ruby on rails Rails:如何在应用程序控制器中排除对before_操作的post请求
我有一个rails应用程序。我在我的应用程序控制器中使用before_操作为所有已识别的用户获取一个变量(我在标题中使用它,所以我需要在所有视图中使用它) 但是,它会减慢所有不需要变量的post请求。我试着用谷歌搜索,但什么也找不到。另外,我不确定我所做的是应用程序控制器的最佳实践 在采取行动之前,我如何排除对此的所有post请求 一个解决方案是在我所有的控制器中复制/粘贴代码,但这似乎不是最好的Ruby on rails Rails:如何在应用程序控制器中排除对before_操作的post请求,ruby-on-rails,controller,Ruby On Rails,Controller,我有一个rails应用程序。我在我的应用程序控制器中使用before_操作为所有已识别的用户获取一个变量(我在标题中使用它,所以我需要在所有视图中使用它) 但是,它会减慢所有不需要变量的post请求。我试着用谷歌搜索,但什么也找不到。另外,我不确定我所做的是应用程序控制器的最佳实践 在采取行动之前,我如何排除对此的所有post请求 一个解决方案是在我所有的控制器中复制/粘贴代码,但这似乎不是最好的 谢谢。在对post请求采取行动之前停止呼叫 before_action :method_name,
谢谢。在对post请求采取行动之前停止呼叫
before_action :method_name, except: [:create, :update]
你可以用很多方法来做。一个只使用,除了在下面的操作之前 除了:
before_action :method_name, except: %I[create update]
如果要跳过任何其他成员或集合路由,则必须使用“先跳过后跳过”操作。如果应用程序有多个路由,则必须为所有控制器添加“跳过”
如果您只想跳过post请求,那么如果您想排除所有post请求,您可以将方法(before_action method)更改如下。(请记住,它将接受所有内容,包括put和delete)
在其他方面,我们可以只允许get请求再做一件事
def method_name
return unless request.get?
do your stuff
end
我不知道我也可以在应用程序控制器中使用它!谢谢,它起作用了。
def method_name
return unless request.get?
do your stuff
end