2012-08-16 70 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
相關問題