class User
include Mongoid::Document
include Mongoid::Timestamps
include ActiveModel::ForbiddenAttributesProtection
include ActiveModel::SecurePassword
include Gravtastic
gravtastic :filetype => :png, :size => 100
field :name
field :full_name
field :description
field :email
field :password_digest
field :password_reset_token
field :password_reset_token_created_at, :type => Time
field :locale, :default => I18n.locale.to_s
has_many :spaces, :dependent => :destroy
has_secure_password
validates :name, :presence => true, :uniqueness => {:case_sensitive => false}, :format => {:with => /\A[a-z0-9-]+\z/, :message => I18n.t('errors.messages.space_name') }, :length => {:in => 4..20}
validates :email, :presence => true, :uniqueness => {:case_sensitive => false}, :format => {:with => /\A([^@\s]+)@((?:[-a-z0-9]+\.)+[a-z]{2,})\z/}
validates :password, :length => { :minimum => 6 }, :on => :create
validates :locale, :inclusion => {:in => ALLOW_LOCALE}
validates :current_password, :presence => true, :if => :need_current_password
validates_length_of :password, :minimum => 6, :if => :in_password_reset
attr_accessor :current_password, :need_current_password, :in_password_reset
def member_spaces
Space.where(:member_ids => self.id)
end
end
以前写的都是直接用 rails g model 生成的,默认就继承 ActiveRecord::Base,也感觉挺好用的,最近看了一个别人的代 码,发现他的 model 是不继承 ActiveRecord,这样有什么不一样的地方?是不是必须的声明字段啊,而且貌似也能使用 validates