我正在开发一个网站,医生可以在这里管理他们的病人、预约等。一个医生可以有多个助手来帮助他们进行这些活动,一个助手可以属于多个医生。
医生和助理都应该能够从同一个登录表单登录,但由于明显的原因,他们根据自己的角色拥有不同的权限和关联,例如,患者与医生关联,而不是与助理关联。
你认为如何处理这一问题是最好的方法?我正在考虑CanCan用于授权部分,可能STI用于用户模型,Doctor和Assistant可以从中继承用于身份验证部分,但STI能否处理这两个模型之间的HABTM,以及每个模型可能具有的其他关联?
提前感谢
这样就可以了。
只需确保您使用"类型"来设置用户。然后您可以使用以下内容:
current_user.is_doctor?
确定进入区域的权限。
module User
def is_doctor?
true if self.type == Doctor
end
def is_assistant?
true if self.type == Assistant
end
end
module Doctor < User
has_and_belongs_to_many :assistants, :through => "assistant_assignments"
end
module Assistant < User
has_and_belongs_to_many :doctors, :through => "assistant_assignments"
end
如果你需要更多信息,大声喊出来。