我是rails的新手,我想了解如何正确定义用户模型及其角色/类型。在我写的应用程序中,我有3种类型的用户:客户端,员工,具有以下功能限制的管理员
该应用程序还具有服务(服务的定义:名称,价格等)和ServiceInstance(销售服务)模型。
非常感谢任何建议/反馈。
答案 0 :(得分:1)
听起来像是员工,管理员和工作人员。客户端将是您的应用程序的关键概念。我会为每个创建一个模型,并与User建立一对一(has_one或belongs_to)关系。然后,您可以在用户上添加验证,以允许/禁止员工,管理员和组合的组合。客户端。
附加:这意味着用户仍然是代表可以登录系统的人的模型。如果该用户是客户和工作人员,则它将这两个模型关联起来。
ServiceInstance与客户端的关联称为“provided_by”。 ServiceInstance与员工有一个名为'executed_by'的关联。当然,客户端和员工实际上指的是用户,但是指定特定上下文/角色的用户。
如果您需要显示客户,员工或管理员列表,您只需查询该表,但打印相关的用户信息。如果您需要显示所有用户的列表,请查询用户表并显示图标或其他内容,无论他们是客户,员工,管理员还是他们的组合。
附加:因此,您对员工和客户的用户的评论将在员工和客户表中,因为该用户同时具有这两个角色。