class User < ActiveRecord::Base include Gravtastic before_create :set_default_role belongs_to :role gravtastic :size => 165, :filetype => :png, :rating => 'R' # Include default devise modules. Others available are: # :token_authenticatable, :encryptable, :confirmable, :lockable, :timeoutable and :omniauthable devise :database_authenticatable, :registerable, :recoverable, :rememberable, :trackable, :validatable validates :username, :presence => true, :uniqueness => true # Setup accessible (or protected) attributes for your model attr_accessible :username, :email, :password, :password_confirmation, :remember_me, :role_id has_many :topics, :dependent => :destroy has_many :posts, :dependent => :destroy def registered? self.role == Role.find_by_name('registered') end def banned? self.role == Role.find_by_name('banned') end def moderator? self.role == Role.find_by_name('moderator') end def admin? self.role == Role.find_by_name('admin') end private def set_default_role self.role ||= Role.find_by_name('registered') end end