Ruby on rails,cancan和默认角色分配

时间:2011-05-19 00:22:30

标签: ruby-on-rails-3 default roles cancan role

我已经构建了一个小的ruby webservice,在此我已经实现了cancan授权。

我跟着this tutorial。问题是,我无法找到在用户注册到我的网站时分配基本角色级别的方式。

我发现这是一个复选框,但这不是我想要的。我的想法是将这个作业直接放入registrations_controller,但我没能保存这个角色。

我希望有人可以帮助我。

谢谢。

3 个答案:

答案 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)

我已经重建了迁移,我统一了用户和角色表,所以现在我可以毫无问题地分配所有内容。

谢谢。