我使用devise作为我的身份验证系统,使用cancan作为权限。我正在添加角色的过程中,我正在尝试让它,以便当用户注册时,他将自动分配一个角色。我看了ryan bate screencast,也关注了一个devise & cancan tutorial。
我如何在不使用复选框的情况下实现这一点,并根据用户注册的时间自动分配角色给他们。
发布于 2012-03-06 06:07:03
您可以尝试使用回调:http://api.rubyonrails.org/classes/ActiveRecord/Callbacks.html
before_create回调可能就是您在用户模型中想要的:
class User < ActiveRecord::Base
before_create :set_default_roles
private
def set_default_roles
self.roles = ['Default user']
end
end发布于 2012-03-06 07:55:44
AR::Callbacks会帮你完成这项工作,不过我更喜欢在初始化User对象时设置角色:
class Role < ActiveRecord::Base
end
class User < ActiveRecord::Base
after_initialize :set_default_roles
private
def set_default_roles
self.roles = self.roles || [Role.find_by_name('Default Role')]
end
endhttps://stackoverflow.com/questions/9574649
复制相似问题