Rails 中的多种角色
我想设计一个像 Basecamp 这样的基于角色的系统。用户可以是一个品牌的编辑,也可以是另一个品牌的工作人员。我正在使用 devise + cancan。我该如何针对这种情况设计数据库?谢谢。
I want to design a role based system like Basecamp. A user can be editor of a brand and also he can be a worker in another brand. I'm using devise + cancan. How can i design a database for this situation? Thanks.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
我会推荐一个榜样。在这种情况下,用户将
have_and_belong_to_many :roles
,而角色将have_and_belong_to_many :users
。这在角色和用户之间创建了多对多关系。有关关联的更多信息,请参阅此 RailsGuide。在你的 CanCanability.rb 文件中,你可以做这样的事情(我只是猜测你的设置):
在你的 user.rb 文件中,写这样的东西会很有帮助:
希望这有帮助。
I would recommend a role model. In this scenario a user would
have_and_belong_to_many :roles
while a role wouldhave_and_belong_to_many :users
. This creates a many to many relationship between roles and users. See this RailsGuide for more info on associations.In your CanCan ability.rb file you can do something like this (I am just guessing at your setup):
In your user.rb file it's helpful to write something like this:
Hope this helps.
acl_system2。它是一个旧插件,但请查看其自述文件以查看它是否能达到目的。
acl_system2. Its an old plugin, but checkout its readme file to see if it serves the purpose.