Rails强制执行控制器方法被调用

时间:2013-11-21 00:38:15

标签: ruby-on-rails ruby-on-rails-3

在Rails中,如何在执行任何控制器上的操作之前强制执行特定方法?

例如,我希望始终调用一个名为can?('xxx')的方法来进行授权检查。如果有人创建了一个新的控制器方法并忘记调用它,我想提出异常。

1 个答案:

答案 0 :(得分:0)

您应该使用之前的过滤器:

class ApplicationController < ActionController::Base
  before_action :require_login

  private

  def require_login
    can?('xxx')
  end
end

文档:http://guides.rubyonrails.org/action_controller_overview.html#filters