goshakkk_reborn
@goshakkk_reborn

Архитектура Rails приложения?

Дано: Rails 3.1, Devise, Mongoid



Нужно: как-то организовать два типа пользователей — Клиент и Разработчик, у обоих должны быть разные параметры в профиле. Но каждый должен иметь возможность входа через одну форму.



Есть несколько идей, например — Клиент и Разработчик — разные модели, но каждая эмбедит (embeds) модель User.

Или Клиент и Разработчик наследуются от Пользователя.



Вопрос на StackOverflow
  • Вопрос задан
  • 4020 просмотров
Пригласить эксперта
Ответы на вопрос 3
@himik
возможно вам подойдет Single table inheritance
Вопрос на StackOverflow
Ответ написан
Комментировать
Kasheftin
@Kasheftin
Представьте, что проект разрастется, и понадобится, чтобы юзер был одновременно и заказчиком и исполнителем (например, вебмастер-разработчик заказывает дизайн у подрядчика-дизайнера). Потребуется велосипед, чтобы синхронизировать две модели.

Берите одну модель юзера, роли от cancan, здесь туториал, атрибутов с избытком, чтобы на все роли хватило и кастом-валидаторы — какого типа юзер какие атрибуты может иметь. Форма от devise автоматически одна получится.

Хотя форму одну можно рисовать и через partial, засовывайте в :locales требуемый объект, если есть поля, которые в форме используются, все получится.
Ответ написан
Комментировать
d4rkr00t
@d4rkr00t
Была статья на хабре про полиморфные модели и Devise :) как вариант сделать так.

У себя сделал одну модель и связь на доп. поля пользователей в зависимости от типа пользователя.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы