繁体   English   中英

用户模型的Rails单表继承(STI)

[英]Rails Single table inheritance (STI) with the User model

建立一个小的预订网站。 users (登录并使用该站点的用户),并且有被分配到rooms guests users可以是(是?) guests但并非所有guests也是users

我最初的belongs_touserguest之间建立一个belongs_to / has_one关系,但STI可能在这里起作用? 作为用户和来宾拥有first_namelast_nameemail等,是否有必要设置模型以使userguest都继承自person

我将进行自己的简单身份验证,因此user可能仅有的其他附加字段是password_digestroles_maskicon_color

有什么建议么? 我只是问,因为在身份验证,授权和其他方面可能会变得棘手。

感谢任何想法/提示!

如建议的那样,这里最简单的方法是坚持STI。 例如,您可以设置单个devise User模型,并在CanCan应用ACL并为用户定义角色。

CanCan的能力规格将确定哪些资源可访问,哪些资源不可访问。 这样做的好处是用户可以成为访客,并且根据您设置ACL的方式,可以防止访客具有类似admin访问权限。

但是,Jesse建议使用两个单独的Devise模型也是一个好主意,因为这可以确保它们的会话是分开的。 实施起来更直接,因为您可以相应地设置特定于用户的ACL和来宾特定的ACL。

https://github.com/ryanb/cancan

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM