我有一个控制器,其中包含默认的RESTful路由操作(index
new
create
show
edit
update
destroy
(以及其他几个操作。我想设置一个仅在默认路由上运行的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
的模块并将其包含在
内