0

roles如果最多可以有 5 个不同的角色,是否可以为用户表使用嵌入式文档字段?我问这个的原因是因为我相信对该字段使用数组类型会做同样的事情。我唯一一次使用角色字段是检查用户是否有能力访问网站上的某些页面/功能。我在这里错过了什么吗?谢谢

4

1 回答 1

0

我真的不认为这两种方法都不正确,而且我认为它与您希望模型的外观比如何存储数据更相关。它实际上仅取决于您想要保留的角色类型以及您计划如何检查用户角色之外的哪些信息(如果有的话)。

如果您只想存储角色列表(管理员、用户、版主等),那么序列化数组属性可能就可以了。另一方面,如果您的角色中存储了更多信息(例如,为每个角色授予的操作或权限),那么UserRole单独构建一个模型并将其嵌入到您的User模型中可能会有所帮助。

如果您只是存储一个角色列表,其中每个用户都可以是一个或多个角色的成员,那么实际上还有另一个非常好的选择。您实际上可以使用位掩码。使用这种方法,您的用户角色将被存储为一个简单的整数,并且您将使用一些 ruby​​ 的按位运算符将该值映射到一组角色。

http://railscasts.com/episodes/189-embedded-association?view=asciicast

于 2012-10-25T19:01:21.543 回答