Я использую рельсы 3.2 и разрабатываю 2.0, и я совершенно новый для Rails.
Требования
Я хотел бы сделать следующее:
- имеют 2 или более "пользовательских" моделей, например. Пользователь, Клиент, Администратор
- все модели имеют некоторые обязательные поля (например, адрес электронной почты и пароль).
- каждая модель может иметь несколько уникальных полей (например, только для клиентов)
- некоторые поля могут быть разделены, но не имеют одинаковой проверки (например, имя требуется для Клиента, но необязательно для участника).
- все поля должны быть заполнены во время процесса регистрации, поэтому формы различаются
- форма входа должна быть уникальной.
Возможные решения
Я долго искал и искал StackOverflow, но мне ничего не кажется правильным (я парень Java, извините:) и теперь я совершенно смущен. Появились два решения:
Пользователь с одним дизайном
Это самый частый ответ. Просто создайте созданный по умолчанию пользователь и создайте отношения между Member → User и Customer → User. Меня беспокоит, как я могу добиться индивидуального процесса регистрации для каждой модели? Я пробовал разные вещи, но все закончилось как беспорядок!
Несколько разработчиков
Это решает процесс пользовательской регистрации и кажется мне правильным, но уникальная форма входа - блокиратор. Я нашел ответ на SO (Devise - логин от двух моделей), который предлагает переопределить Devise:: Models:: Authenticatable.find_for_authentication (условия). Это кажется сложным (?), И поскольку я новичок в рельсах, я хотел бы знать, может ли это работать?
Спасибо за ваш совет!