Не удается заставить skip_before_filter работать с ActiveAdmin в Rails - PullRequest
1 голос
/ 18 января 2012

Я использую гем devise для аутентификации и у меня в ApplicationController есть следующий before_filter:

  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.Я попробовал методы, описанные в этом посте , добавив следующее в config / initializers / active_admin.rb:

  config.skip_before_filter :require_login

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

ActiveAdmin.register Listing do

  controller do
    skip_before_filter :require_login
  end

end

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

Что я делаю не так?

1 Ответ

1 голос
/ 18 января 2012

Итак, две вещи:

Первое: я думаю, что вы используете Devise неэффективно.Вместо пользовательского метода входа в application_controller вы должны:

class ApplicationController 
  before_filter :authenticate_user!
end

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

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

email: admin@example.com 
password: password
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...