1

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

我最初的想法是在&之间建立belongs_to/has_one关系,但也许 STI 会在这里工作?作为用户和客人拥有,等。建立模型是否有意义,例如,都继承自?userguestfirst_namelast_nameemailuserguestperson

我将推出自己的简单身份验证,因此唯一的附加字段user可能是password_digest和。roles_maskicon_color

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

欣赏任何想法/提示!

4

1 回答 1

0

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

CanCan的能力规格将确定哪些资源可以访问,哪些不能。此处的优点是用户可以是访客,并且根据您设置 ACL 的方式,可以阻止访客拥有admin类似的访问权限。

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

https://github.com/ryanb/cancan

于 2012-01-06T21:52:39.073 回答