Многопользовательские логины в Rails - PullRequest
4 голосов
/ 27 февраля 2010

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

Когда пользователи приходят на сайт, я хочу, чтобы они вошли в систему, но было бы странно иметь 3 входа (тренер, индивидуальный участник и спортсмен). Пользователи, заходящие на сайт, будут сбиты с толку, независимо от того, являются ли они частным лицом или спортсменом. Я думал о том, чтобы поставить ссылку для входа в систему, в которой было бы меню ajax со всеми тремя вариантами, что будет выглядеть лучше, но у меня все еще есть проблема с несколькими входами.

Кто-нибудь имеет представление о том, как я могу идеально сделать 1 форму входа для отдельных лиц и спортсменов. Я использую authlogic для аутентификации. Я не ищу код, я могу пойти и покопаться, просто задаваясь вопросом, есть ли хитрость в этом (облегчающая для пользователя).

Спасибо!

Ответы [ 3 ]

3 голосов
/ 27 февраля 2010

Возможно, вы захотите взглянуть на камень разработки (http://github.com/plataformatec/devise),, который поддерживает использование нескольких моделей для аутентификации.

0 голосов
/ 28 февраля 2010

Вы хотите назначить роли пользователям. Вам не нужны отдельные подклассы для каждого типа пользователя, смоделируйте его так: has_many :roles.

Посмотрите на это сообщение в блоге для подробного объяснения - роли могут быть очень простыми, если это все, что вам нужно.

0 голосов
/ 28 февраля 2010

Почему бы не сделать модель «Индивидуальный», «Спортсмен» и «Тренер» подклассом вашей модели «Пользователь». Затем вы можете поместить всю болтовню аутентификации в пользователя, и она будет доступна всем трем - все через одну и ту же форму входа.

...