Я использую программу, чтобы помочь с моей аутентификацией, и по разным причинам у меня есть пара подклассов модели User, которая помогает разделить проблемы для регистрации и некоторых других бизнес-логик.Настраивать наследование пользователя и user_signed_in? и current_user
Подклассы User
являются Affiliate
и Admin
(и я мог бы иметь больше в будущем), все из которых хранить все данные в таблице пользователей (не отдельные таблицы).
Все пользователи могут подключиться к сети через заданный по умолчанию ресурс users
(/users/sign_in
). Однако у меня проблема.
Если пользователь регистрируется через ресурс /users/sign_in
, я могу получить доступ к помощнику user_signed_in?
и current_user
, а затем получить доступ к любым другим ассоциациям Active Record. Это то, что я хочу! Уо! Это отлично работает.
Однако, это не относится к пользователю, который подписывается как Affiliate
. Поскольку программа автоматически регистрирует пользователя (в котором я хочу), я ожидаю, что user_signed_in?
будет равен true
и current_user
, который будет только что подписанным пользователем. Это не тот случай, когда пользователь подписывается через ресурс /affiliate/sign_up
.
На Affiliate
модели (помните, что подклассы пользователя, как такой class Affiliate < User
) Я вызвал (через завещанию) отдельный набор контроллера/представления для sign_up, чтобы я мог настроить этот процесс немного (как процесс sign_up немного более настраиваемый для данного конкретного пользователя). Когда пользователь подписывается через этот ресурс /affiliate/sign_up
, тогда зарегистрирован филиал, но СЕЙЧАС current_user
- nil
и user_signed_in?
- false
. Но помощники current_affiliate
- это гидратированный объект, а affiliate_signed_in?
- это правда.
То, что я хочу сделать, это быть в состоянии получить доступ к одному типу помощника - в user_signed_in?
помощника и помощника current_user
не ребенка affiliate_signed_in?
и current_affiliate
. Я хотел бы получить доступ: current_user
и user_signed_in
. Увидев, что Affiliate
подклассы User
, почему не user_signed_in?
и current_user
вернули текущего пользователя (aka: Affiliate
)? Почему помощники current_affiliate
и affiliate_signed_in?
работают, но не user
-некоторые не такие?
Есть ли способ сделать рамки всегда использовать current_user
и user_signed_in?
помощники, поскольку все подклассифицирует модель User
?