我构建了一个小型的 ruby 网络服务,在此我实现了 cancan 授权。
我遵循了本教程。问题是,当用户注册到我的网站时,我找不到在用户处分配基本角色级别的方法。
我发现使用复选框来执行此操作,但这不是我想要的。我的想法是将这个任务直接放入registrations_controller,但我未能保存这个角色。
我希望有人可以帮助我。
谢谢。
这就是对我有用的
用户.rb:
after_create :default_role
private
def default_role
self.roles << Role.where(:name => 'User').first
end
我遇到了同样的问题,但我正在使用来自 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是在插入操作之后,就我而言,这很晚。
我已经重建了迁移,我已经统一了用户和角色表,所以现在我可以毫无问题地分配所有内容。
谢谢。