可以与过滤器中的命名路由进行比较吗?

时间:2013-11-11 04:03:28

标签: ruby ruby-on-rails-4 rails-routing

我有以下代码:

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。

1 个答案:

答案 0 :(得分:2)

我认为您可以采取的一种方法是禁止before_filter :admin_login行动,如下所示:

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

因此,您可以删除第一个if语句,而不必担心它。

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