2012-03-05 14 views
1

私は私の認証システムにはdeviseを使用しており、許可はcancanです。私は役割を追加する過程にあり、ユーザーがサインアップするときに役割を自動的に割り当てられるようにしようとしています。私はryan bate screencastを見て、さらにdevise & cancan tutorialに続きました。レールcancanの役割?

チェックボックスを使用せずにこれを実装して、サインアップ時にユーザーに自動的に役割を割り当てます。

答えて

3

あなたは、コールバックを使用して試みることができる:http://api.rubyonrails.org/classes/ActiveRecord/Callbacks.html

before_createコールバックを使用すると、ユーザーモデルに欲しいものはおそらくです:

class User < ActiveRecord::Base 
    before_create :set_default_roles 
    private 
    def set_default_roles 
     self.roles = ['Default user'] 
    end 
end 
2

AR::Callbacksは、しかし、私は時にロールの設定を好む、あなたのためのトリックを行いますユーザーオブジェクトは、最初に初期化されます。

class Role < ActiveRecord::Base 
end 

class User < ActiveRecord::Base 
    after_initialize :set_default_roles 

    private 
    def set_default_roles 
     self.roles = self.roles || [Role.find_by_name('Default Role')] 
    end 
end