我创建了一个模块,基本上我想做的是,
在这个模块中,有一个函数可以像 before_filter 一样工作。该函数将执行逻辑并确定它应该执行什么。例子
class JobsController < ApplicationController
include Mymodule
authorize_resources
def create
end
def update
end
end
module Mymodule
def authorize_resources
current_controller = params[:controller]
if current_controller == 'jobs'
//some logic
end
end
end
所以我实际上是如何根据我的功能所在的位置(例如工作、用户等)自动检测控制器名称的。这类似于 CanCan,但我想自己制作。
此外,如果失败,我如何引发异常或重定向到路径,是否需要扩展一些 Rails 类?
def authorize_resources
if current_controller.class == 'jobs'
//logic
end
end