如何为具有rollify的用户设计主要角色?

时间:2016-11-18 06:46:12

标签: ruby-on-rails authorization roles rolify

例如,用户可以是adminplayer,我希望用户设置主要角色。例如,我可以是player,然后稍后再切换为admin

显而易见的是在main_role模型上附加role_idUser

但是,我担心我必须让主角色与用户拥有的角色保持同步。例如,如果用户不再是玩家,则她的main_role不能是玩家的。{/ p>

我想的另一种方式是订购第一个将成为主要角色的角色。我找不到一个简单的方法来做到这一点。

Ex: user.roles.map(&:name) => ["admin", "player"] 在这种情况下,主要角色是“管理员”,如果我希望主要角色是玩家,我可以将“玩家”交换为第一。

有没有人对此有任何好的建议?

谢谢!

1 个答案:

答案 0 :(得分:0)

我最好称之为" current_role"。

更改角色列表时,不要害怕检查当前角色。

如果用户失去了他的current_role角色,那么将current_role从他的列表中更改为下一个。

是的,我建议使用带有外键的role_id的current_role,用户表中的ON DELETE RESTRICT,ON UPDATE CASCADE。

如果您使用postgres以外的其他内容,请使用rails的db一致性检查。