首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >多级用户组

多级用户组
EN

Stack Overflow用户
提问于 2009-10-15 03:30:15
回答 3查看 920关注 0票数 1

我正在尝试确定最好的结构来接近多层次的用户组。到目前为止,我已经创建了一个名为"User“的对象,我认为它可能会被分成不同的级别。或者我应该简单地为每个用户组创建不同的表?

EN

回答 3

Stack Overflow用户

发布于 2009-10-15 06:51:32

了解一下Single Table Inheritance.

简而言之,您可以向表中添加一个类型(字符串)列,并从User中将使用该表的所有其他模型子类化

例如:

代码语言:javascript
运行
复制
class SuperUser < User
  ...
end
票数 1
EN

Stack Overflow用户

发布于 2010-01-13 10:11:23

我假设你说的是用户的不同角色。我目前使用的是RoleRequirement。它可以相当容易地完成工作。http://code.google.com/p/rolerequirement/

票数 0
EN

Stack Overflow用户

发布于 2010-01-14 18:13:02

正如EmFi所建议的,单表继承是您最好的选择。您需要将类型字段添加到数据库的users表中,并按如下所示创建用户模型的子类:

代码语言:javascript
运行
复制
class Admin < User
  # You probably don't need any methods here.
end

但是,您还需要创建一个before过滤器。与确保用户登录的方法非常相似,它只是检查用户的类。这应该放在你的ApplicationController中:

代码语言:javascript
运行
复制
def check_admin
  current_user.is_a? Admin
end

给你,鲍勃是你的叔叔,你有基本的授权。

要在rails中将用户提升为Admin,只需更改type字段。当然,通过这种方式,用户只能拥有一个访问级别(这对于很多应用程序来说都很好)。如果你想要一个更复杂的系统,acl9已经做好了充分的准备。我个人习惯于将它与authlogic一起使用,以形成一个相当强大的系统。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1570149

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档