首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >具有多角色的Rails用户模型

具有多角色的Rails用户模型
EN

Stack Overflow用户
提问于 2014-03-04 21:00:50
回答 1查看 809关注 0票数 0

我是rails新手,我想了解如何正确定义用户模型及其角色/类型。在我正在编写的应用程序中,我有三种类型的用户:客户端、员工、管理,并具有以下功能约束

  • 所有3种用户类型都可以访问应用程序的不同功能。
  • 员工也可以是客户。
  • 管理人员也可以是员工,也可以是客户,也可以两者兼而有之。管理员可以是客户端而不需要人员
  • 工作人员,管理员将有权访问应用程序(用户名/密码)。客户端可能访问应用程序,也可能无法访问应用程序。

应用程序还具有一个服务(服务的定义:名称、价格等)和一个ServiceInstance (出售的服务)模型。

  • ServiceInstance“提供”给客户端的用户(工作人员和管理人员也可以是客户)。
  • ServiceInstance由“人员”“执行”(管理员也可以是工作人员)。

任何建议/反馈都将受到高度赞赏。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-03-04 22:19:07

听起来,员工、管理和客户端将是应用程序的关键概念。我将为其中每一个创建一个模型,并与用户建立一对一(has_one或belongs_to)关系。然后,您可以添加对用户的验证,以允许/不允许人员、管理和客户端的组合。

添加:这意味着用户仍然是代表可以登录到您的系统的人的模型。如果这个用户是一个客户端和人员,那么它有这两个模型相关联。

ServiceInstance与客户端有一个名为‘provided’的关联。ServiceInstance与工作人员有一个名为“performed”的关联。当然,客户端和工作人员实际上指明了一个用户,但是一个特定上下文/角色中的用户。

如果您需要显示客户端、员工或管理员的列表,只需查询该表,但要打印相关的用户信息。如果需要显示所有用户的列表,请查询users表,并显示图标或其他内容,以确定他们是客户端、职员、管理人员还是组合用户。

添加:因此,您对一个用户的评论,即职员和客户端,将在staff和client表中,因为该用户具有两个角色。

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

https://stackoverflow.com/questions/22182946

复制
相关文章

相似问题

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