Mongomapper的独特之处

时间:2014-09-15 09:19:32

标签: ruby-on-rails validation mongomapper

我有用户模型

class User
  include MongoMapper::Document


  key :phone, Integer, :required => true, :unique => true
  key :is_confirmed, Boolean, :default => false
  timestamps!
end

并验证手机的唯一性,但我可以使用同一部手机创建用户而不会出错.WHY?

为什么验证唯一性不起作用

1 个答案:

答案 0 :(得分:1)

MongoMapper 使用ActiveModel:Validations,因此它的工作方式几乎与ActiveRecord

完全相同

尝试此操作验证:validates_uniqueness_of

validates_uniqueness_of :phone

尝试保存记录时会运行验证。如果验证fail,则保存将返回false

大多数简单验证可以与一起声明。

示例:

class Person
  include MongoMapper::Document

  key :first_name,  String,   :required => true
  key :last_name,   String,   :required => true
  key :age,         Integer,  :numeric => true
  key :born_at,     Time
  key :active,      Boolean
  key :fav_colors,  Array
end

定义keys时的可用选项是:

  • :必需 - 声明validate_presence_of
  • 的布尔值
  • :唯一 - 声明validates_uniqueness_of
  • 的布尔值
  • :数字 - 声明validates_numericality_of
  • 的布尔值
  • :格式 - 传递给validates_format_of的正则表达式
  • :in - 传递给validates_inclusion_of的数组
  • :not_in - 传递给validates_exclusion_of的数组
  • :length - 传递给validates_length_of的整数,范围或哈希