2012-01-17 1 views
1

Я использую DEViSE камень для проверки подлинности и имеет следующий before_filter в моем ApplicationController:Не удается получить skip_before_filter работать с ActiveAdmin в Rails

before_filter :require_login 

    def require_login 
    unless user_signed_in? || params[:controller] == 'devise/sessions' 
     flash[:error] = "You must be logged in to access that page." 
     redirect_to new_user_session_path 
    end 
    end 

Я недавно реализован ActiveAdmin камня и пытается получить skip_before_filter для работы в ActiveAdmin, чтобы я мог получить доступ к ActiveAdmin. Я попытался методы, описанные в этом post, добавив следующую строку в конфигурационном/Инициализаторах/active_admin.rb:

config.skip_before_filter :require_login 

, а также добавив следующую строку в одном из моих админ файлов модель, listing.rb:

ActiveAdmin.register Listing do 

    controller do 
    skip_before_filter :require_login 
    end 

end 

, но он не работает, даже после перезапуска сервера и браузера.

Что я делаю неправильно?

ответ

1

Так две вещи:

Первый: Я думаю, что вы используете Завещание нерационально. Вместо метода пользовательского входа на application_controller, вам необходимо:

class ApplicationController 
    before_filter :authenticate_user! 
end 

Вот именно - все остальное работает.

Во-вторых: Active Admin использует другой пользовательский класс - «admin_user» (а не «пользователь»). По умолчанию используются следующие учетные данные:

email: [email protected] 
password: password 
+0

Использование devity authenticate_user! метод избавился от моих проблем. Благодаря! – John