使用RoleModel gem:如何从用户中删除以前分配的所有角色

时间:2013-04-23 09:08:07

标签: ruby-on-rails authorization cancan role

在我的RoR应用程序中,我使用了角色模型和CanCan宝石。用户没有默认角色。 在将角色分配给用户之前,role_mask为空。我可以分配多个角色。但我无法删除所有角色,并将roles_mask再次设置为nil。分配的最后一个角色仍然存在 我需要删除以前分配的角色,所有这些角色!有可能??

1 个答案:

答案 0 :(得分:3)

如果您想将单个用户角色设为nil,那么在您的角色中,修改操作就像

一样
 user.roles_mask = nil

并保存

如果你想让所有的角色掩盖为零,那么你可以通过写一个rake任务来做到这一点。

之类的东西
task :make_roles_nil => :environment do
User.all.each do |user|
user.roles_mask = nil
user.save
end
end

将一个名为user.rake的文件放入lib / tasks目录 然后运行

bundle exec rake user:make_roles_nil RAILS_ENV = YOUR ENVIRONMENT(development or production)