2013-11-11 2 views
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.

ответ

2

Я думаю, что один из способов вы можете сделать это, чтобы запретить before_filter на :admin_login действия, например, так:

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

В результате, вы можете избавиться от первого if заявления, и не нужно беспокоиться об этом вообще.

Пожалуйста, дайте мне знать, если я неправильно понял вопрос.

+1

Вау, не могу поверить, что я скучаю по API docus, d'oh! Большое спасибо, его идеальный и я удалил еще больше кода! – Darren

Смежные вопросы