Rails 3, разработка и проблема наследования отдельных таблиц - PullRequest
1 голос
/ 08 июля 2011

Я воспроизвел проблему, которую я получаю, в простом проекте rails, доступном на github:

ходовые рельсы 3.1rc4: https://github.com/demental/devise_sti

ходовые рельсы 3.0.9: https://github.com/demental/devise_sti_rails3

В основном:

  • У меня есть модель User, которая использует поведение устройства
  • У меня есть модель администратора, которая наследуется от пользователя
  • У меня есть два изобретенных ресурса в моей маршрутизации.

При входе в систему в качестве администратора я получаю отклонение от authenticate_admin! фильтр, как если бы я был пользователем.

Я не знаю, если это проблема, или я сделал что-то не так ... есть идеи?

1 Ответ

0 голосов
/ 09 июля 2011

Отвечая себе:

У меня есть два способа избежать этой проблемы, которая возникала только при выполнении тестов:

  1. Поскольку отображения Devise повторяются от первого до последнего devise_for, объявленного в маршрутах, я могу проверить порядок этих строк и поставить devise_for: user last. Проверка выполняется с помощью is_a, так как admin.is_a (пользователь), администратор был выбран как пользователь. Инвертирование заказов devise_for заставило администратора совпадать с пользователем.
  2. Я также могу (я думаю, чище) использовать параметр scope в вспомогательном методе sign_in: sign_in: admin Factory (: admin)
...