2012-03-21 2 views
8

У меня есть две модели User and Admin (с RailsAdmin), которые используют Devise. Я вхожу в систему как пользователь, а затем в качестве администратора. Но результатом выписки из одной из этих моделей является одновременное выключение двух моделей. Как я могу это исправить? Пожалуйста, помогите :)Devise отдельный вывоз для двух разных моделей

ответ

23

Проблема была в одной строке в конфигурации/инициализаторах/devise.rb:

  • По умолчанию:

    # Настройка sign_out поведение.
    # Действие Sign_out может быть ограничено (т. Е./Users/sign_out влияет только на область пользователя).
    # Значение по умолчанию - true, что означает, что любое действие выхода из системы выведет все активные области.
    # config.sign_out_all_scopes = истинный

  • Необходимость:

    config.sign_out_all_scopes = ложные

+4

Хотя OP удовлетворен с принятым ответом, технически ответ на исходный вопрос - вот этот. –

+0

Да, вы правы. –

+0

Вы должны принять это как решение, или это невозможно? –

0

Объем разработки - это все приложение - вы входите на сайт, а не в модель. Возможно, вы хотите добавить различие ролей - у пользователя может быть одна или несколько ролей, которые предоставляют им определенные привилегии. Разработчик просто получает вас аутентифицированного пользователя. Рассмотрим драгоценный камень, такой как CanCan, который обеспечивает поддержку «авторизации на основе ролей».

+0

Спасибо за ваш ответ. Вы действительно поняли, насколько ясен. Первоначально я хотел использовать две отдельные модели - [Создание модели администратора] (https://github.com/plataformatec/devise/wiki/How-To:-Add-an-Admin-role), но теперь я понимаю, что это был не лучшим выбором. Тем не менее, есть ли у меня какие-либо шансы остаться на моем пути или будет лучше использовать роли только с моделью пользователя? –

+0

Оба: аутентификация (разработка) и авторизация (CanCan или другой ролевой подход) различны. –

+0

Утилита может быть ограничена на основе каждой модели: https://github.com/plataformatec/devise#configuring-multiple-models (Возможно, это было неверно в момент ответа на этот вопрос) –

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