首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用单次登录在Rails应用程序中创建多个用户角色(Rails Devise、Pundit、STI?帮助)

使用单次登录在Rails应用程序中创建多个用户角色(Rails Devise、Pundit、STI?帮助)
EN

Stack Overflow用户
提问于 2018-01-17 03:31:56
回答 1查看 813关注 0票数 1

我目前是一名Rails新手,我一直在努力为这个特定的Rails应用程序绘制数据模型。我正在尝试构建一个业务员工/客户应用程序,其中有三种类型的用户(管理员、员工和客户)。

管理员将拥有完全的控制权,他/她可以添加/编辑新员工和客户(这将反过来为他们创建用户帐户)。员工将能够查看自己的帐户详细信息,客户也可以查看。

我如何用Rails devise和pundit来设置它呢?我潜伏在Google和stackoverflow上,最常见的解决方案似乎是使用一个用户模型,使用STI/pundit为用户设置角色,并限制对特定视图的访问。有没有人能在我发疯之前帮我解开这个?

EN

回答 1

Stack Overflow用户

发布于 2018-01-17 03:41:48

通常,如果角色是独占的(意味着员工不能是管理员或客户,客户不能是管理员/员工,等等)您将在User的模型上放置一个role:integer列,即Rails枚举:

enum role: %i[customer employee admin]

这为您提供了不同授权(用户可以访问的内容)所需的内容,或者是通过您自己的自定义代码,或者是通过pundit之类的东西。

如果您的用例需要一个角色来拥有不同的数据,您可以对Users表进行单表继承,尽管我强烈建议避免使用STI。

如果您的用户需要多个角色,而您需要为每个角色提供不同的数据/行为,则可以考虑使用多态关联。我之前写了一个关于这个问题的答案here

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

https://stackoverflow.com/questions/48288543

复制
相关文章

相似问题

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