Sha256: be2975e9b92717e0b296735125b3e62d65372939c91a5c9fe003f22729ad1078

Contents?: true

Size: 1.13 KB

Versions: 2

Compression:

Stored size: 1.13 KB

Contents

class User
  include Mongoid::Document

  field :login
  field :email
  field :role
  field :age, type: Integer
  field :password, type: String

  belongs_to :site, :inverse_of => :users
  has_many :articles, :foreign_key => :author_id
  has_many :comments, :dependent => :destroy, :autosave => true
  has_and_belongs_to_many :children, :class_name => "User"
  has_one :record

  embeds_one :profile

  validates :login, :presence => true, :uniqueness => { :scope => :site }, :format => { :with => /^[\w\-]+$/ }, :exclusion => { :in => ["super", "index", "edit"]}
  validates :email, :uniqueness => { :case_sensitive => false, :scope => :site, :message => "is already taken" }, :confirmation => true
  validates :role, :presence => true, :inclusion => { :in => ["admin", "moderator", "member"]}
  validates :profile, :presence => true, :associated => true
  validates :age, :presence => true, :numericality => true, :inclusion => { :in => 23..42 }, :on => [:create, :update]
  validates :password, :presence => true, :on => :create

  attr_accessible :login, :email, :age, :password
  attr_accessible :role, :as => :admin

  def admin?
    false
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
mongoid-rspec-1.5.0 spec/models/user.rb
mongoid-rspec-1.4.6 spec/models/user.rb