Как пропустить вызовы application_controller, только когда он находится в определенном пространстве имен (ActiveAdmin) - PullRequest
2 голосов
/ 21 марта 2012

Я пытаюсь использовать активного администратора в проекте.В этом проекте также используется другой гем для разделения разных клиентов, а также has_secure_password для обычной аутентификации.

У меня проблема с пропуском обоих этих фильтров, когда пользователь переходит к активному администратору (просто другое пространство имен - admin).

class ApplicationController < ActionController::Base
    force_ssl
    helper :all
    protect_from_forgery
    set_current_tenant_by_subdomain(:account, :subdomain) # need to skip this call when in the admin namespace
    before_filter :require_user # need to skip this call when in the admin namespace
end

Спасибо за помощь!

Ответы [ 2 ]

3 голосов
/ 21 марта 2012

Вы можете создать BaseController, который включает в себя set_current_tenant_by_subdomain и before_filter :require_user, и ваши контроллеры, не являющиеся администраторами, наследуют его, тогда как контроллер администратора наследует непосредственно от ApplicationController. Это работало для меня в прошлом.

1 голос
/ 29 ноября 2012

в config / initializers / active_admin.rb вы можете добавить строку:

config.skip_before_filter :offending_filter

к сожалению, это делает все, кроме контроллера приборной панели ... для этого вам нужно

controller do
  skip_before_filter :offending_filter
end

в app / admin / dashboard.rb

...