0

我有以下代码:

class Admin::ApplicationController < ApplicationController
  include Admin::AuthHelper
  before_filter :authorize
  layout 'admin/application'

  protected
  def authorize
      if controller_name != 'Auth' && action_name != 'login'
        if is_authenticated_admin!
          redirect_to :admin_login, :flash => { warning: t(:unauthorized) }
        end
      end
  end
end

是否可以更换:

if controller_name != 'Auth' && action_name != 'login'

只需检查该路线是否不是命名路线:admin_login?我正在使用 Rails 4.0.1。

4

1 回答 1

2

我认为您可以这样做的一种方法是禁止before_filteron:admin_login操作,如下所示:

before_filter :authorize, :except => [:admin_login]

结果,您可以摆脱第一个if语句,而完全不必担心它。

如果我误解了这个问题,请告诉我。

于 2013-11-11T04:11:23.940 回答