Я бы хотел добавить несколько разных типов пользователей в мое приложение rails. У меня есть 2 разных способа, я думаю, я мог бы пойти по этому поводу:
Я мог бы использовать метод согласно документации Devise
# Inside the various models
devise :database_authenticatable, :trackable, :timeoutable, :lockable
# Inside your routes
devise_for :model1
devise_for :model2
devise_for :model3
# Inside your protected controller
before_filter :authenticate_model1!
# Inside your controllers and views
model1_signed_in?
current_model1
model1_session
Меня беспокоит этот метод, я хотел бы, чтобы все типы пользователей входили в систему через одну и ту же форму, и в большинстве случаев все модели имеют большинство одинаковых привилегий, поэтому я не хочу проверять для каждого один для model_signed_in? и т.д. Я не думаю, что я действительно хочу иметь дело с ИППП.
Способ 2. Выберите модель «Один пользователь» и добавьте столбец «Роль». Затем просто создайте другие модели и сделайте так, чтобы они принадлежали пользователю. Это похоже на путь, но я застрял на том, как обрабатывать ассоциации в модели пользователя.
Я просто делаю has_one для каждой из других моделей? Это кажется глупым, учитывая, что он может иметь только 1 из других. Я чувствую, что здесь упускаю что-то простое ...
Какой путь?