在我的应用中,我有不同类型的用户/模型,通过devise gem
进行配置以进行注册。让我让你更清楚。
http://localhost:3000/doctor/sign_in
http://localhost:3000/hospital/sign_in
http://localhost:3000/user/sign_in
因为所有这些都有自己的数据库表,如doctors
,hospitals
,users
,其中所有细节都分别保存。
现在我想知道的是,这可能有单一登录页面,并且我使用已注册的doctor's id
登录,那么它应该将我重定向到Doctors
页面,如果我使用hospital's id
登录然后它应该将我重定向到hospitals
页面,依此类推..这有可能实现吗?如果是,那么请你指导我正确的方向我应该做什么?
注意:我知道管理roles/user_types
但我不能这样做,因为医生,医院和用户需要不同的信息。
答案 0 :(得分:4)
class AuthUser < ActiveRecord::Base; end
class Doctor < AuthUser; end
class Hospital < AuthUser; end
class User < AuthUser; end
并使用设计用于AuthUser。
关于登录路径后,您可以自定义after_sign_in_path_for
。 Sample
答案 1 :(得分:1)
我认为应该只有一个用于保存用户,即users
。您可以创建一个名为user_types
的表,其中包含用户类型名称,即医生,医院和用户。用户属于用户类型。它看起来像这样
class User
belongs_to :user_type
end
class UserType
has_many :users
end
然后在应用程序控制器中,您可以覆盖设计的after_sign_in_path_for
方法,并根据用户类型将用户重定向到该页面。
希望这是有道理的!
或强>
如果无法做到这一点,那么您可以为Doctor,User和Hospital添加三个单选按钮,用户必须在签名前选择登录类型和凭据。根据所选单选按钮的值处理后端登录。