我正在使用设计来帮助我的身份验证和各种原因我有几个用户模型的子类,有助于分开关注注册和一些其他业务逻辑。设计用户继承和user_signed_in?和current_user
的User
的子类是Affiliate
和Admin
(和我可能会在未来更多),所有这些的所有数据存储在用户表(未单独的表)。
所有用户都可以通过默认的users
资源(/users/sign_in
)登录。但是,这是我遇到问题的地方。
如果用户迹象通过/users/sign_in
资源我可以访问user_signed_in?
和current_user
助手,然后访问任何其他活动记录的关联。这就是我要的!呜呼!这很好。
但是,注册为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
返回当前用户(又名:Affiliate
)?为什么current_affiliate
和affiliate_signed_in?
助手工作,但不是user
- 不是?
有没有办法让框架始终使用current_user
和user_signed_in?
助手,因为一切都是User
模型的子类?