带有关联和身份验证的用户模型的Rails STI



我正在开发一个网站,医生可以在这里管理他们的病人、预约等。一个医生可以有多个助手来帮助他们进行这些活动,一个助手可以属于多个医生。

医生和助理都应该能够从同一个登录表单登录,但由于明显的原因,他们根据自己的角色拥有不同的权限和关联,例如,患者与医生关联,而不是与助理关联。

你认为如何处理这一问题是最好的方法?我正在考虑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

如果你需要更多信息,大声喊出来。

最新更新