0

我创建了一个模块,基本上我想做的是,

在这个模块中,有一个函数可以像 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
4

1 回答 1

1

将您更改if为:

if(current_controller == JobsController)

Ifparams[:controller]是类本身,并且

if(current_controller.class == JobsController)

如果变量是JobsController.

于 2013-03-18T03:18:39.740 回答