2016-02-13 2 views
1

Это продолжение моего предыдущего поста:Импульсные квартира арендаторов Активный администратора

Active Admin and the Apartment Gem

Я думал, что это работает, но я застрял. У меня есть модель Company в общедоступной схеме в качестве модели арендатора и Locations у индивидуальных арендаторов. Вот мой вход администратор location.rb файл:

ActiveAdmin.register Location do 

#Apartment::Tenant.switch!('abc') 

controller do 

    #Apartment::Tenant.switch!('abc') 

    before_filter do 

    Apartment::Tenant.switch!('abc') 

    skip_authorization 
    skip_policy_scope 

    end 

end 

end 

skip_authorization skip_policy_scope является от некоторых вопросов Пандита я до сих пор с АА. Как вы можете видеть, я попытался добавить Apartment::Tenant.switch в несколько мест. Внутри блока контроллера это единственное место, где я могу заставить его работать.

Когда я загружаю индексную страницу Locations, она отлично работает, и я вижу места своего арендатора. Проблема в том, что если я вернусь на Личную панель или другую страницу и вернусь в Locations и позвоню Apartment::Tenant.switch, меня отпишут обратно на экран входа в систему AA, и я не могу войти в систему. Мне нужно вручную ввести путь выхода из системы AA для выхода из системы.

Это очень странно и не уверен, как еще можно справиться с этим. Журналы не показывают многого.

Я собирался объявить какую-то логику здесь с выпадающим меню, чтобы установить переменную сеанса и т. Д., А затем, если потребуется, страницы ресурсов вызывают Apartment::Tenant.switch, но это показ-шоу. Не знаю, если это Devise, Pundit, Apartment, Active Admin или комбинация.

UPDATE

Определенный прогресс - пытался добавить выход переключателя! вызовите отладочную запись журнала и это «решило» проблему. Если установить переключатель вызов переменного также уходит:

logger.debug "Apartment Switch: #{Apartment::Tenant.switch!('abc').inspect}"  
new_tenant = Apartment::Tenant.switch!('abc') 

UPDATE 2

Моего предыдущее обновление было ошибочным - вопрос остается. Я сузил его до Девиза. Второй вызов switch! никогда не вызывается, поскольку Devise выдает ошибку 401 и выкидывает вас первым. Я отключил Devise для Active Admin, и моя система переключения работает нормально. Я могу использовать простой раскрывающийся список компаний и сеансы для переключения арендаторов на лету. Разработать как-то совсем не нравится.

Вот сутью моих файлов AA: https://gist.github.com/jasper502/8fd16c31ee26667c5a16

+0

Это не Пандит - я отключил его, и я до сих пор вопрос. –

ответ

0

Я мог бы быть немного поздно, но вы пробовали хранения текущего арендатора до перехода на «ABC» на before_filter, а затем перейти обратно к предыдущему арендатор на after_filter?

Я не пытался воспроизвести что-либо, просто мысль

+0

Я мог бы попробовать это. Прямо сейчас мне не нужен auth, поскольку у меня есть AA за базовым auth. –

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

  • Нет связанных вопросов^_^