我有以下代码:
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。
答案 0 :(得分:2)
我认为您可以采取的一种方法是禁止before_filter
:admin_login
行动,如下所示:
before_filter :authorize, :except => [:admin_login]
因此,您可以删除第一个if
语句,而不必担心它。
如果我误解了这个问题,请告诉我。