如何仅为 Rails 控制器中的默认 RESTful 操作设置before_action?



我有一个控制器,其中包含默认的RESTful路由操作(indexnewcreateshoweditupdatedestroy(以及其他几个操作。我想设置一个仅在默认路由上运行的before_action

我知道我可以在控制器顶部添加before_action :set_x, only: [:index, :new, :create, :show, :edit, :update, :destroy],但是有没有更快的方法可以做到这一点?我想为多个控制器执行此操作,因此我无法before_action :set_x, except: [:foo, :bar, :baz]因为每个控制器中的操作都会发生变化,并且会不断添加新操作。

谢谢!

选项:

  • 定义ApplicationController中的before_action
  • 在不需要它的控制器中写入skip_before_action
  • 定义另一个派生自ApplicationController的"控制器"类,添加before_action,只有那些需要它的控制器才会从该类继承
  • 创建仅包含before_action的模块并将其包含在

最新更新