Странная ошибка в пути разработки после входа в систему с помощью / admins / sign_in, а не / admins - PullRequest
2 голосов
/ 02 февраля 2011

Я сейчас использую devise и аутентифицируюсь с администраторами и пользователями (два разных типа входа). Все работает нормально, если я захожу в ... / admins и ... / users. Однако, когда я захожу в url / admins / sign_in, после того, как я вхожу, он автоматически перенаправляет меня на домашнюю страницу вместо страницы / admins, как я хочу. Есть ли способ для меня, чтобы перенаправить его после / sign_in URL?

Ответы [ 2 ]

0 голосов
/ 03 февраля 2011

При входе в систему devise запустит метод after_sign_in_path_for(resource_or_scope), чтобы определить, куда идти, по умолчанию этот метод будет искать путь admin_root и, если он не существует, перенаправит пользователей в корневой путь.Другой вариант - переписать этот метод.Пожалуйста, ознакомьтесь с моим ответом на этот вопрос для получения более подробной информации.

Для получения дополнительной информации ознакомьтесь с документацией devise .

0 голосов
/ 02 февраля 2011

В routes.rb убедитесь, что вы включили эти именованные пути.

map.user_root '/users/edit', :controller => 'users', :action => "edit"
map.admin_root '/admin/edit', :controller => 'users', :action => "edit"

Я делаю это, чтобы он перенаправлял на настройки использования.

Обновление

I 'м по-прежнему 2.3.8, поэтому для рельсов 3 вам нужно использовать это:

root :to => "home"

Вы можете найти его здесь: https://github.com/plataformatec/devise

Обновление

На самом делеПервый код, который я разместил, должен работать для всех версий рельсов.И просто перечисление root само по себе является значением по умолчанию для всех разработанных ресурсов.

...