How To: Add a default role to a User - heartcombo/devise GitHub Wiki
Add a role to the User Model
Set up the Role and User models
First create the Role model and link it to the User Model
$ rails g model Role name:string
$ rails g migration addRoleIdToUser role:references
$ rake db:migrate
Then in your Models
class User < ActiveRecord::Base
belongs_to :role
end
class Role < ActiveRecord::Base
has_many :users
end
Set up seeds.rb with your roles
['registered', 'banned', 'moderator', 'admin'].each do |role|
Role.find_or_create_by({name: role})
end
Then
$ rake db:seed
Set up the default role as a model callback
class User < ActiveRecord::Base
belongs_to :role
before_create :set_default_role
# or
# before_validation :set_default_role
private
def set_default_role
self.role ||= Role.find_by_name('registered')
end
end