我已经构建了一个小的ruby webservice,在此我已经实现了cancan授权。
我跟着this tutorial。问题是,我无法找到在用户注册到我的网站时分配基本角色级别的方式。
我发现这是一个复选框,但这不是我想要的。我的想法是将这个作业直接放入registrations_controller,但我没能保存这个角色。
我希望有人可以帮助我。
谢谢。
答案 0 :(得分:12)
这对我有用
user.rb:
after_create :default_role
private
def default_role
self.roles << Role.where(:name => 'User').first
end
答案 1 :(得分:1)
我遇到了同样的问题,但我使用的是来自rbates的嵌入式关联: http://railscasts.com/episodes/189-embedded-association
user.rb:
before_create :default_role
private
def default_role
self.roles = ['client']
end
像魅力一样工作,但要注意钩子是 before_create ,而不是after_create,因为before_create在插入操作之前运行。
after_create是在插入操作之后,在我的情况下是迟到的。
答案 2 :(得分:0)
我已经重建了迁移,我统一了用户和角色表,所以现在我可以毫无问题地分配所有内容。
谢谢。