2010-02-27 2 views
4

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

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

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

Спасибо!

ответ

3

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

0

Почему модели индивидуальных, спортсменов и тренеров не являются подклассами вашей модели пользователя. Тогда вы можете поместить все аутентификацию guff в User, и он доступен всем трем - через одну и ту же форму входа.

+0

Неплохо, но подклассы ломаются, если пользователь может быть тренером, а также спортсменом. –

+0

Хорошо, и в этом случае звучит так, как будто у вас есть роли пользователя. Однако это не было элементом первоначального запроса. ;) –

0

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

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

+0

Эта ссылка не попала в сообщение в блоге, только в блог. – paholg

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