2012-08-16 43 views
3

尝试向我的项目中添加基于角色的身份验证(使用CanCan和Devise)时,我发现有两种方法可以保存角色:第一种方法是“Has and Belongs_to”方式,第二个只是在用户表中的新字段中保存角色。将默认角色添加到设计用户模型

所以,问题是,我怎么能确定在第一种方式deafult用户角色,我应该选择定义在第二个deafult角色(设置在迁移或编辑设计的用户控制器默认角色?)哪条路

另外,我应该使用这种方法,还是更好地使用宝石呢?

P.S.我已经阅读过Tony Amoyal的教程,但没有在那里找到答案。

回答

2

这种情况在Rails的反模式的书描述:http://railsantipatterns.com/

简短的回答是:使用迁移应用领域users表,设置默认的作用。这种方式要简单得多。您不应该使用复杂的解决方案,因为它可能更适合您的未来需求。

+0

哇,谢谢你的回答!这对我帮助很大 – Nausik 2012-08-16 18:06:08

9

如果我理解正确的问题,这里是我工作:Ruby on rails, cancan and default role assignment

只需添加以下到/models/user.rb对注册指定默认角色:

after_create :default_role 

    private 
    def default_role 
    self.roles << Role.where(:name => 'User').first 
    end 
1

你可以做user.rb如下:

方便用户角色的解决方案可以使用这种宝石来实现10
相关问题