我正在开发一个医生可以管理患者,约会等的网站。 医生可以有多名助手帮助他们完成这些活动,助理可以属于多位医生。
医生和助理都应该能够使用相同的登录表格登录,但由于显而易见的原因,他们根据自己的角色拥有不同的权限和关联,例如患者与医生相关联,而不是与助理相关联。
您如何建议最好的方法来解决这个问题?我正在考虑CanCan的授权部分,也许是STI的用户模型,Doctor和Assistant可以从认证部分继承,但是STI可以处理这两者之间的HABTM,以及每个模型可能具有的其他关联吗?
提前多多感谢
答案 0 :(得分:0)
这应该可以解决问题。
请确保使用'type'来设置用户。然后,您可以使用以下内容:
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
如果您需要更多信息,请大喊。